当前位置:  开发笔记 > 编程语言 > 正文

无法使用ProcessBuilder运行程序,从命令行运行正常

如何解决《无法使用ProcessBuilder运行程序,从命令行运行正常》经验,为你挑选了1个好方法。

在linux(debian)上,我可以运行这个命令:

/usr/lib/jvm/jdk1.7.0_21/bin/java -jar ~/myjar.jar ".*"

我试图从Java程序运行它,而不是:

ProcessBuilder pb = new ProcessBuilder(java, "-jar", "~/myjar.jar", "\".*\"");

System.out.println(pb.command()); 按预期打印以下内容:

[/usr/lib/jvm/jdk1.7.0_21/bin/java, -jar, ~/myjar.jar, ".*"]

但是我从程序中得不到相同的输出(它运行但输出看起来好像".*"没有正确考虑参数).

任何想法为什么它不起作用?

注意:相同的代码在Windows上运行正常.



1> Reimeus..:

看起来没有使用glob扩展通配符.您可以改为使用shell:

ProcessBuilder pb = 
       new ProcessBuilder("bash", "-c", "java -jar ~/myjar.jar \".*\"");

或者您可以删除通配符周围的双引号:

ProcessBuilder pb = new ProcessBuilder(java, "-jar", "~/myjar.jar", ".*");

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有