首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在java中运行以下Powershell命令?

如何在java中运行以下Powershell命令?
EN

Stack Overflow用户
提问于 2018-12-14 14:25:14
回答 1查看 2.5K关注 0票数 3

我正在尝试运行一个powershell命令,它启动tomcat service.Currently,当直接通过windows执行命令时,该命令运行得很好。但是,如果我从java运行相同的命令,则会得到并错误地声明

启动-进程:无法找到接受参数'net‘的位置参数。

我的powershell命令是:

代码语言:javascript
运行
复制
Start-Process -verb runas cmd -ArgumentList "/k net start Tomcat7"

我的java代码:

代码语言:javascript
运行
复制
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);
             }
EN

回答 1

Stack Overflow用户

发布于 2018-12-14 15:40:27

Runtime.exec已经过时了。使用ProcessBuilder代替:

代码语言:javascript
运行
复制
ProcessBuilder builder = new ProcessBuilder("powershell.exe",
    "Start-Process", "-verb", "runas", "cmd", "-ArgumentList", "/k net start Tomcat7");
Process p = builder.inheritIO().start();
int exitCode = p.waitFor();

inheritIO()的调用将使流程的输出显示在Java程序的输出中,因此不需要读取和打印流程的InputStream。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53781556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档