JBX中的运行结果:Cleanser dilute() apply() Detergent.scrub() scrub() foam()Testing base class:Cleanser dilute() apply() scrub()手工结果也一样啊

解决方案 »

  1.   

    兄弟:你在JCreator Pro中试过吗?奇怪,通过java Detergent 运行的结果与你一致,但是为何通过JCreator Pro执行的结果始终是
    Cleanser dilute() apply() scrub()
    Press any key to continue...
    请指教?难道JCreator Pro有何设置?
      

  2.   

    :( ,到JCreator中结果果然不一样。不过你将class Cleanser代码移到public class Detergent 代码下面,奇迹出现了。于是Debug,发现不论怎样,都是run Detergent,结果一样,依次打印Cleanser dilute() apply() Detergent.scrub() scrub() foam()Testing base class:Cleanser dilute() apply() scrub()但是就是不知道Class Cleanser代码在程序前端的时候,为什么运行时会丢了两行输出。下面是Debug的输出:
    --------------------Configuration: test1 - JDK version 1.4 <Default> - <Default>--------------------
    Initializing jdb ...
    > Deferring breakpoint Cleanser:9.
    It will be set after the class is loaded.
    > run Detergent
    Set uncaught java.lang.Throwable
    Set deferred uncaught java.lang.Throwable

    VM Started: Set deferred breakpoint Cleanser:9
    Cleanser dilute() apply() Detergent.scrub() scrub() foam()
    Testing base class:Breakpoint hit: "thread=main", Cleanser.main(), line=9 bci=0main[1] step up
    Cleanser dilute() apply() scrub()

    Step completed: "thread=main", Detergent.main(), line=33 bci=40main[1] cont

    The application exitedProcess completed.
       
      

  3.   

    哈哈,发现Execute Project时结果完全正确,但是Execute File时结果不对,于是怀疑是不是Execute File时执行的class文件不对。于是更改Build->Runtime Configuration->Default->Edit->Run Application->Default->Edit->show command line选中。再执行,发现命令如下:Command   : "f:\JBuilder9\jdk1.4\bin\java.exe" -classpath "F:\JCreator\MyProjects\Detergent\classes\;f:\JBuilder9\jdk1.4\jre\lib\rt.jar;f:\JBuilder9\jdk1.4\lib\dt.jar;f:\JBuilder9\jdk1.4\lib\tools.jar;f:\JBuilder9\jdk1.4\jre\lib\ext\dnsns.jar;f:\JBuilder9\jdk1.4\jre\lib\ext\ldapsec.jar;f:\JBuilder9\jdk1.4\jre\lib\ext\localedata.jar;f:\JBuilder9\jdk1.4\jre\lib\ext\sunjce_provider.jar" myprojects.detergent.Cleanser 一切都明白了,原来执行的是Cleanser !!但是当把class Cleanser代码移到public class Detergent 代码下面的时候,命令如下:
    Command   : "f:\JBuilder9\jdk1.4\bin\java.exe" -classpath "F:\JCreator\MyProjects\Detergent\classes\;f:\JBuilder9\jdk1.4\jre\lib\rt.jar;f:\JBuilder9\jdk1.4\lib\dt.jar;f:\JBuilder9\jdk1.4\lib\tools.jar;f:\JBuilder9\jdk1.4\jre\lib\ext\dnsns.jar;f:\JBuilder9\jdk1.4\jre\lib\ext\ldapsec.jar;f:\JBuilder9\jdk1.4\jre\lib\ext\localedata.jar;f:\JBuilder9\jdk1.4\jre\lib\ext\sunjce_provider.jar" myprojects.detergent.Detergent ,原来这时候执行的又是Detergent !!!
      

  4.   

    用jdk试试,可以输出正确的结果