在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"); } 

它经过了测试,适用于LinuxWindows