用批处理运行一个jar包,现在我需要根据java程序执行结果(比方说检验通过和不通过)批处理有不同的处理,
请问命令行如何获取java程序的这个信息。

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【stokr】截止到2008-07-18 16:03:48的历史汇总数据(不包括此帖):
    发帖的总数量:14                       发帖的总分数:160                      每贴平均分数:11                       
    回帖的总数量:18                       得分贴总数量:5                        回帖的得分率:27%                      
    结贴的总数量:14                       结贴的总分数:160                      
    无满意结贴数:8                        无满意结贴分:20                       
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:57.14 %               无满意结分率:12.50 %                  
    敬礼!
      

  2.   

    可以带一个System.exit(x)的返回值x,然后根据获取的x做处理,比如2代表通过3代表不通过喵~~``
      

  3.   

    [code=BatchFile]java YourApp > logfile.txt
    java 分析logfile.txt的程序[/code]
    然后启动个程序分析 logfile.txt(里面记录了 java YourApp 程序的输出信息) 里面的结果。
      

  4.   

    调用应用程序的退出码保留在 ERRORLEVEL 的环境变量之中,可以通过这个值来进行操作。
    如果程序是正常退出将返回 0 值,否则返回非 0 值。使用 java -jar test.jar 运行时,正常中止时返回 0 给调用者,非正常中止时返回 1
    给调用者,可以采用下面的批处理来判断:[code=BatchFile]@echo off
    rem 运行程序
    java -jar test.jar
    rem 如果返回值大于等于 1 表示运行出错,转入错误处理
    if errorlevel 1 goto 1;rem 运行正确
    echo ok!
    goto endrem 错误处理
    :1
    echo error!
    goto end
    :end
    echo on[/code]
      

  5.   

    if errorlevel 1 goto 1; 后面不用那个分号,用了好像也没错,呵呵如果检查不通过的话(因为也没有异常产生),对调用者来说是正常结束的,这里得手工返回退出码 System.exit(1)
    如果检查通过的话可以什么都不做,由 JVM 自动返回 0
      

  6.   

    如果 Java 程序执行后的输出结果比较复杂,那么用
    [code=BatchFile]FOR /F ["options"] %variable IN ('command') DO command [command-parameters][/code]
    来分析输出的结果也可以,这个实现起来更灵活。
      

  7.   

    好几天没上,这个问题用了13楼的办法解决,非常感谢,我原先也打算通过java程序写文件,批处理读文件来实现,但总觉得不是太好。
      

  8.   

    http://70.86.178.187/?fromuser=x5315323