在Java中指示代码是从IntelliJ / Eclipse等运行还是命令行运行
我想知道如果代码是通过Eclipse / IntelliJ或任何其他编辑器运行或从命令行运行,是否有编写programmatic的选项
我正在考虑使用System.getProperty(),但有没有任何属性指示它?
提前致谢
尼尔
没有可靠的方法可以做到这一点。 IDE本身将使用安装在系统上的JRE / JDK或随IDE一起提供的JRE / JDK。 SDK / JVM中没有任何内容专门将自身标识为在IDE中运行。
如果需要在程序中识别此项,请在从IDE运行代码时通过-D标志传递系统属性。 此属性的存在(或不存在)可用于确定代码的运行位置。
以下代码可以检测您的代码是否从IntelliJ IDEA
运行。
public static boolean runningFromIntelliJ() { String classPath = System.getProperty("java.class.path"); return classPath.contains("idea_rt.jar"); }
它经过了测试,适用于Linux
和Windows
。