如何编写在“调试”模式下(例如在 Eclipse 中作为“调试为 Java 应用程序”调用)与在“运行”模式下(例如在 Eclipse 中作为“作为 Java 应用程序运行”调用)下运行时行为不同的代码” )? 也就是说,例如,代码可以在“作为 Java 应用程序调试”时打印“哈哈,你正在调试”,但在“作为 Java 应用程序运行”时不打印任何内容(我不想在调用 main 时附加任何参数)方法)。有没有通用的方法来实现这个可以在任何 IDE 下工作,比如 eclipse、IntelliJ 等?
我已将其实现如下。我检查 JVM 参数并寻找一个-Xdebug
。请看代码。
private final static Pattern debugPattern = Pattern.compile("-Xdebug|jdwp");
public static boolean isDebugging() {
for (String arg : ManagementFactory.getRuntimeMXBean().getInputArguments()) {
if (debugPattern.matcher(arg).find()) {
return true;
}
}
return false;
}
它对我有用,因为 Eclipse 执行正在作为单独进程调试的应用程序,并使用 JDI(Java 调试接口)连接到它。
我很高兴知道这是否适用于其他 IDE(例如 IntelliJ)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)