ass*_*ias 1 java linux processbuilder
在linux(debian)上,我可以运行这个命令:
/usr/lib/jvm/jdk1.7.0_21/bin/java -jar ~/myjar.jar ".*"
Run Code Online (Sandbox Code Playgroud)
我试图从Java程序运行它,而不是:
ProcessBuilder pb = new ProcessBuilder(java, "-jar", "~/myjar.jar", "\".*\"");
Run Code Online (Sandbox Code Playgroud)
System.out.println(pb.command()); 按预期打印以下内容:
[/usr/lib/jvm/jdk1.7.0_21/bin/java, -jar, ~/myjar.jar, ".*"]
Run Code Online (Sandbox Code Playgroud)
但是我从程序中得不到相同的输出(它运行但输出看起来好像".*"没有正确考虑参数).
任何想法为什么它不起作用?
注意:相同的代码在Windows上运行正常.
看起来没有使用glob扩展通配符.您可以改为使用shell:
ProcessBuilder pb =
new ProcessBuilder("bash", "-c", "java -jar ~/myjar.jar \".*\"");
Run Code Online (Sandbox Code Playgroud)
或者您可以删除通配符周围的双引号:
ProcessBuilder pb = new ProcessBuilder(java, "-jar", "~/myjar.jar", ".*");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3033 次 |
| 最近记录: |