我想要这样的东西:
long timeout = isDebugModeActive() ? Long.MAX_VALUE : 10000;
因此,当调试器在断点处停止时,不会发生超时。
是否有任何 API 或系统/环境属性可以找到它?
该线程的作者找到了这个解决方案:
java.lang.management.ManagementFactory.getRuntimeMXBean().
getInputArguments().toString().indexOf("-agentlib:jdwp") > 0;
不过,标准的免责声明似乎是合适的 - 这非常脆弱(因为它在触发时非常具体)并且可能导致Heisenbugs(当您尝试调试时不会出现的错误)。对于许多情况,系统属性或环境变量可能更好。
您可以进行新的运行配置(运行 -> 运行配置)并在那里添加环境变量或系统属性。
如果您开发 RCP 应用程序,您可以使用:
if(Platform.inDevelopmentMode()) {
// ....
}
通过检查JVM
启动程序的参数是可能的。
在那里你会看到:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=[port]
然后检查端口是否正在侦听或有连接。