zoukankan      html  css  js  c++  java
  • 关于JAVA Project.waitfor()返回值是1

    Project.waitfor()返回值是1,找了很久从网上没有发现关于1的说明。

    这时对源代码调试了一下,发现Project=null.而去根目录下点击被调用的bat文件发现也可以被正确执行。

    这时想到应该将标准错误流的信息打印出来,发现是bat文件的路径只获取到了第一个空格前。所以问题的原因是空格导致文件路径不能被获取。

     原先的代码

    String batpath = file.getCanonicalPath() + "\resources\runTest.bat";
    
    //run bat file
    
    Process project = Runtime.getRuntime().exec("cmd.exe /c " + batpath);
    
    int exitcode=project.waitFor();
    
    //kill the process
    
    project.destroy();
    
    logger.info(exitcode);
    

     修改后的代码

    //run bat file
    
    Process project = Runtime.getRuntime().exec("cmd.exe /c " + batpath.replaceAll(" ", "" ""));
    

     此次解决问题的经验是:

    不要盲目的先去网上找答案,要先将自己的程序调试一下,将错误信息打印出来,然后针对错误信息有针对性的去网上找答案。这样做比较有效。

  • 相关阅读:
    19. vue的原理
    18.jwt加密
    17.vue移动端项目二
    16.vue-cli跨域,swiper,移动端项目
    15.vue动画& vuex
    14.vue路由&脚手架
    13.vue组件
    12.vue属性.监听.组件
    11.vue 数据交互
    从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/xriverside/p/4362640.html
Copyright © 2011-2022 走看看