2017-06-14 49 views
2

我想知道是否可以在Eclipse中使用Java(或者更確切地說Java本身)只在調試模式下運行一段代碼?就像在C++中一樣:Eclipse for Java - 運行代碼塊像C++ #ifdef DEBUG

#ifdef DEBUG 
    // something to do 
#else 
    // something else to do 
#endif 

我知道Java中沒有預處理器,但也許有一些解決方法?

+1

Java沒有條件編譯。請參閱@MrPromethee的答案 –

回答

2

我認爲最好的方法是使用public static final boolean作爲調試標誌,在需要時將其導入,並將調試代碼放在if塊中。

public static final boolean DEBUG = true; 

import ClassName.DEBUG; 

if (DEBUG) { 
    doDebugThings(); 
} 
+0

但是,當我想要調試時,每次我都必須更改代碼中的某些內容。我在Eclipse中思考了一些調試配置...->參數值。 – rainbow

+0

您只需要在其中一個配置類中更改該值。 – MrPromethee

+0

我剛想出一個選項。調試配置...->環境給我們一個設置環境變量的機會。然後就可以在應用程序中檢查這些變量,甚至可以在調試模式下運行它。我必須檢查它... – rainbow

0

沒有Java的方式做到這一點,看到Determine if a java application is in debug mode in Eclipse

有以下解決方法: https://stackoverflow.com/a/43149241/5581745,ü可以適應UR需求...

基本思想:

  1. 使用條件轉折點,例如一個類加載器斷點上ur啓動類
  2. 寫入條件像這樣MyDebug.setDebugModeOn();
    • 在這個方法中,你會得到調試的初始化代碼,例如,你在哪裏設置了一個static public boolean DEBUG_MODE_IS_ON var。
    • 總是返回false從這個,所以破發點永遠不會導致停止