2017-06-14 48 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从这个,所以破发点永远不会导致停止