簡體   English   中英

如何知道我的代碼在IDE中以“調試”模式運行?

[英]How to know my code is running in “debug” mode in IDE?

如何在“運行”模式下編寫在“調試”模式下運行時不同的代碼(例如在eclipse中調用為“Debug As Java Application”)(例如在eclipse中調用為“Run as Java Application”) )?例如,代碼可以在“Debug As Java Application”時打印“Haha,您正在調試”,但在“Run As Java Application”時不打印任何內容(我不想在調用main時附加任何args)有沒有任何通用的方法可以在任何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)

這些模式之間的區別在於,在調試模式下,IDE將使用調試器(通常通過二進制套接字)連接到剛執行的應用程序。 附加調試器允許IDE發現被擊中的斷點,拋出的異常等。這在正常模式下不會發生。

從Java代碼中區分調試模式和普通模式沒有標准且易於使用的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM