[英]Correct way to run another java program from java
我想从Java应用程序运行以下shell命令:
java -jar saxon9he.jar -warnings:fatal a.xml a.xsl param1=123 param2=abc
目前,我只是使用以下命令将其作为shell命令执行
ProcessBuilder pb = new ProcessBuilder(commandLineParts);
[...]
Process process = pb.start();
用Java执行此操作的正确方法是什么?
这是在Java中执行命令的正确方法。 只是为了消除可能的混乱:ProcessBuilder不会使用Shell执行程序。 这就是为什么您必须为其提供参数列表而不是单个字符串(将由shell解析)的原因。
有两种可能性:
根据应用程序的类型,另一种选择是对应用程序服务器执行一些杂技,以在其中启动应用程序。
如果使用ProcessBuilder,请小心处理其输入和输出流-如果不处理它们,则应用程序可能会挂起: Java ProcessBuilder:输入/输出流 Java 7中对此进行了改进。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.