【发布时间】:2019-05-15 19:59:03
【问题描述】:
我正在尝试运行一个启动 tomcat 服务的 powershell 命令。当前,当直接通过 windows powershell 执行该命令时,该命令运行良好。但是,如果我从 java 运行相同的命令,我会得到错误提示
Start-Process:找不到接受参数“net”的位置参数。
我的 powershell 命令是:
Start-Process -verb runas cmd -ArgumentList "/k net start Tomcat7"
我的java代码:
final String PS_COMMAND = " powershell.exe Start-Process -verb runas cmd -ArgumentList /k net start Tomcat7 " ;
Process p= Runtime.getRuntime().exec(PS_COMMAND);
BufferedReader BR=new BufferedReader(new InputStreamReader(p.getInputStream()));
String l;
while((l=BR.readLine()) != null){
System.out.print(l);
}
【问题讨论】:
-
使用 ProcessBuilder,而不是 Runtime.exec。确保你传递了六个字符串。
-
@Alfabravo 在上一版中,有价值的信息似乎丢失了,这是故意的吗?
-
我已经编辑并放回了java代码!!
-
@VGR 如何使用流程构建器实现这一目标??
-
@lalo 不!我想我们是同时编辑的。我刚刚格式化了 PS 命令和错误消息,但是在我编辑时添加了 java 代码并且它丢失了。很抱歉!
标签: java powershell cmd