开发者社区> 问答> 正文

ProcessBuilder问题?报错


    /**
     * @param args
     * @throws Exception
     */
    @Test
    public void main2() throws Exception {
        ProcessBuilder pb = new ProcessBuilder("javac","-d","E:\\tar", "E:\\Test.java");
        pb.directory(new File("D:\\software\\green\\java\\jdk8_64\\jdk1.8.0_66"));
        File log = new File("E:\\log.txt");
        pb.redirectErrorStream(true);
        pb.redirectOutput(Redirect.appendTo(log));
        Process p = pb.start();
    }
    
    
    @Test
    public void main() throws Exception {
        ProcessBuilder pb = new ProcessBuilder("BaiduYunGuanjia.exe");
        pb.directory(new File("D:\\software\\BaiduYunGuanjia"));
        File log = new File("E:\\log.txt");
        pb.redirectErrorStream(true);
        pb.redirectOutput(Redirect.appendTo(log));
        Process p = pb.start();
    }

main2正常运行  main报错  其实文件是存在的(直接 cmd 是可以 执行的,换到java 报文件找不到 好搞笑)不知道是不是 jdk 的问题

 

 

展开
收起
爱吃鱼的程序员 2020-06-08 16:00:50 731 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    ProcessBuilderpb=newProcessBuilder("D:\\software\\BaiduYunGuanjia\\BaiduYunGuanjia.exe");


    不要轻易怀疑是库的问题,也许某些api你理解错了 

    那该怎么用喔?我楼有补充

    可能你没把要执行的程序放到PATH里面

    回复 @哎呦-又忘了:我认为你的环境还是配置有问题,你确认一下是否都放进你的PATH里了看楼下嘛环境都是设置好了的
     @Test   publicvoidmysql()throwsException{     //ProcessBuilderpb=newProcessBuilder("mysql","-u","root","-p");     //newProcessBuilder("mysqldump.exe",dbName,"-h"+host,"-u"+username,"-p"+password);    ProcessBuilderpb=newProcessBuilder("mysqldump.exe","ssh","-h127.0.0.1","-uroot","-p123");    //pb.directory(newFile("D:\\Software\\green\\mysql-5.6\\bin"));    Filelog=newFile("E:\\ocr\\log.txt");    pb.redirectErrorStream(true);    pb.redirectOutput(Redirect.appendTo(log));    Processp=pb.start();  }

     

    环境什么的都是好的,总是报错诶

     

    2020-06-08 16:01:06
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载