首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >执行Java时进程不运行

执行Java时进程不运行
EN

Stack Overflow用户
提问于 2018-09-23 01:09:54
回答 1查看 225关注 0票数 1

我正在尝试在java中运行一个.class文件。这是我尝试过的:

代码语言:javascript
复制
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("cd target/classes/; java -cp ./ SoundHandler Correct; cd ../../");

我做了一些谷歌搜索,我能想到的最好的办法就是把它添加到最后:

代码语言:javascript
复制
pr.getInputStream();
pr.getErrorStream();
pr.getOutputStream();

这并没有起到作用。我想在java中运行一个.class文件。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-23 01:26:49

您向运行时提供了三个要执行的命令-但只有一个参数。它试图将其作为一个命令来执行--但是这样的命令并不存在。

如果命令由多个元素(命令和参数)组成,则应将它们作为字符串数组传递,以便运行时可以区分它们。如果您使用的是shell命令(如cd),则应该将命令作为参数传递给shell。

尝试如下所示:

代码语言:javascript
复制
//if you are using unix-like OS. For Windows change sh -c to cmd /k
String[] cmd = new String[] {"sh", "-c", "cd target/classes/ && java -cp ./ SoundHandler Correct"};
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmd)

为了调试进程,您可以通过以下方式读取命令的输出:

代码语言:javascript
复制
InputStream is = pr.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);

String line;
while ((line = br.readLine()) != null){
    System.out.println("MSG: " + line);
}

在一些聊天对话之后有一点更新:主要的想法是工作的,但是类路径需要一些调查。

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

https://stackoverflow.com/questions/52458983

复制
相关文章

相似问题

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