6

如果代码通过 Eclipse/IntelliJ 或任何其他编辑器运行或从命令行运行,我想知道是否有编写程序的选项

我正在考虑使用 System.getProperty() 但是否有任何属性表明它?

提前致谢

尼尔

4

3 回答 3

23

以下代码可以检测您的代码是否运行IntelliJ IDEA

public static boolean runningFromIntelliJ()
{
    String classPath = System.getProperty("java.class.path");
    return classPath.contains("idea_rt.jar");
}

它已经过测试LinuxMac OS X因此Windows它应该是独立于平台的。

于 2016-05-05T11:27:47.487 回答
4

没有可靠的方法可以做到这一点。IDE 本身将使用安装在您的系统上的 JRE / JDK 或与 IDE 一起打包的 JRE / JDK。SDK / JVM 中没有任何东西可以明确地将自己标识为在 IDE 中运行。

如果您需要在程序中识别这一点,请在从 IDE 运行代码时通过 -D 标志传递系统属性。此属性的存在(或不存在)可用于确定从何处运行代码。

于 2013-03-11T13:19:42.700 回答
1

这仅在您没有使用运行/调试配置中的“缩短命令行”选项之一时才有效。因为我们需要缩短命令行(类路径太长)我现在正在使用

public static boolean runningFromIntelliJ()
{
    return System.getProperty("idea.test.cyclic.buffer.size") != null;
}

IntelliJ 在运行测试时设置该属性。

于 2019-07-10T13:47:46.147 回答