No.you can emit the debug message for release!

解决方案 »

  1.   

    又出新毛病了
    JDeveloper ver 1.3.2中,我用file->new定义了一个新菜单类,在可视化编辑菜单时,出来的却是对话框,菜单没办法可视化编辑了,而前两天还是可以的,why?
    分会一直向上加
      

  2.   

    回复时请点“管理”进来,正常进来有些回复看不到
    to Tivoli
    你的意思是说1.4之后的才不会在release版中存在debug信息吧,可我现在的版本是1.2,还没有楼上各位说的assert信息呢
      

  3.   

    自己做一个就是了,很简单的。private boolean debugFlg = flase;public void setDebugFlg(boolean argDebugFlg) {
      debugFlg = argDebugFlg;
    }public debug(String argStr) {
      if (debugFlg) {
        System.out.println("[TRACE]" + argStr);
      }
    }在Release中设置debugFlg为flase,不会debug不会被输出了。
      

  4.   

    这样也会把debug这个函数调用及其中的if判断语句编译了,只不过不输出罢了,而我是想有没有与MFC中的TRACE宏对应的JAVA方法来实现
    #ifdef _DEBUG
    // dosomething
    #endif
    这种MFC中的的功能,即在release版本中根本不编译这部分代码
      

  5.   

    你可以在虚拟机参数中设置debugFlg的值,决定输不输出debug信息了。
    但是这个方法的缺陷是,你每一个类都要写一个这种方法了。否则就不能用了。
    也可以把它做成静态方法就没有这么简单了。
    例子如下:import java.util.Properties;public class Test {
      PIManageFrame pimf;  public Test() {
        debug("TestDebug");
      }  public static void debug(String argStr) {
        Properties p = System.getProperties();
        String debugFlg = (String)p.get("DEBUGFLG");
        if (debugFlg.equals("0")) {
          System.out.println("[TRACE]" + argStr);
        }
      }  public static void main(String[] args) {
        Properties p = System.getProperties();
        p.setProperty("DEBUGFLG", "0");
        Test t = new Test();
      }
    }
      

  6.   

    在java中没有预处理这就没办法了。
    这跟java语言本身有关的,要不java的效率怎么上不去呀。
    我们现在做java项目都是用这种方法做debug了
      

  7.   

    谢谢 KillAllError ,再等一下看看有没有什么其它方法