gpt4 book ai didi

java - 如何确定 "debug mode"是否启用

转载 作者:IT老高 更新时间:2023-10-28 20:46:20 26 4
gpt4 key购买 nike

Java 程序如何确定它是否在 Debug模式下运行?

应用程序在常规“全速”模式下的行为应该与“ Debug模式”(连接调试器时,在 Debug模式下运行时)略有不同。应用程序通过 TCP 与另一台计算机、另一个进程或在其内部进行通信。我的同事希望我们默认使用 Socket.setSoTimeout(1000),以便从套接字读取最多可以阻塞 1 秒。在调试时,这当然是不够的,应用程序会停止正常工作。因此,解决方案是将 SO_TIMEOUT 设置得更高,但只是处于 Debug模式(例如:无限制)。现在,我并不总是设置断点,也不想使用我可以自己设置“调试”属性的调试版本。有时我会附加调试器(远程调试)。我主要使用 Eclipse,所以一个可以在那里工作的解决方案就可以了。

可能的答案包括:

  1. 要查看是否在 Debug模式下运行,请在 java.lang.management.*javax.management.* 中使用以下方法 ...

  2. 你的同事因为 X 原因出错了,你不应该将 SO_TIMEOUT 默认设置为 1 秒。

更新

我知道系统属性方法,但我将问题留待解决以解决我最初的问题。

最佳答案

我现在自己发现了:

boolean isDebug = java.lang.management.ManagementFactory.getRuntimeMXBean().
getInputArguments().toString().indexOf("jdwp") >= 0;

这将检查 Java Debug Wire Protocol使用代理。

关于java - 如何确定 "debug mode"是否启用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3776204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com