Eclipse for Java - 运行像C ++ #ifdef DEBUG这样的代码块

时间:2017-06-14 07:58:59

标签: java c++ eclipse debugging preprocessor

我想知道Eclipse中的Java(或者更确切地说是Java本身)是否可以仅在调试模式下运行代码块?就像在C ++中一样:

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

我知道Java中没有预处理器,但也许有一些解决方法?

2 个答案:

答案 0 :(得分:2)

我认为解决此问题的最佳方法是使用public static final boolean作为调试标志,在需要时导入它,并将调试代码放在if块中。

public static final boolean DEBUG = true;

import ClassName.DEBUG;

if (DEBUG) {
    doDebugThings();
}

答案 1 :(得分:0)

没有java方法可以执行此操作,请参阅Determine if a java application is in debug mode in Eclipse

有解决方法: https://stackoverflow.com/a/43149241/5581745你可以适应你的需要......

基本理念:

  1. 使用条件断点,例如你的启动类
  2. 上的类加载器断点
  3. 写出这样的条件MyDebug.setDebugModeOn();
    • 在这个方法中调试初始化代码,例如你在哪里设置static public boolean DEBUG_MODE_IS_ON var。
    • 总是从此返回false,因此断点永远不会导致停止