<分区>
我想要这样的东西:
long timeout = isDebugModeActive() ? Long.MAX_VALUE : 10000;
因此,当调试器在断点处停止时,不会发生超时。
是否有任何 API 或系统/环境属性可以找到它?
<分区>
我想要这样的东西:
long timeout = isDebugModeActive() ? Long.MAX_VALUE : 10000;
因此,当调试器在断点处停止时,不会发生超时。
是否有任何 API 或系统/环境属性可以找到它?
最佳答案
作者 this thread找到了这个解决方案:
java.lang.management.ManagementFactory.getRuntimeMXBean().
getInputArguments().toString().indexOf("-agentlib:jdwp") > 0;
不过,标准的免责声明似乎很合适 - 这非常脆弱(因为它在触发时非常具体)并且可能导致 Heisenbugs (当您尝试调试时不会出现的错误)。对于许多情况,系统属性或环境变量可能更好。
关于java - 如何从 Java 代码知道 VM 是否正在调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12686453/