繁体   English   中英

如何从java程序通过shell命令执行另一个java程序

[英]How to execute another java program via shell command from java program

我应该为我的项目制作一个 IDE。 在这里,我必须通过来自特定 java 程序的 Shell 命令执行一个 java 程序(假设 Hello world )。 我知道如何通过 java 程序(使用 Runtime.getRuntime())执行 shell 命令,但是如何使用这个 shell 命令调用运行 java 程序。

ProcessBuilder开始,它将允许您将每个命令参数作为单独的参数分开,无需“引用”具有空格(如路径)的参数,它将允许您指定命令的起始位置(工作目录)并且重定向支持使从命令的输出中提取信息变得更加容易(尽管您可能希望将其分开)...

 List<String> cmds = new ArrayList<String>(5); // You can use arrays as well
 cmds.add("java");
 cmds.add("-jar");
 cmds.add("filename.jar");
 ProcessBuilder pb = new ProcessBuilder(cmds);
 pb.redirectErrorStream(true);
 pb.directory(new File("...")); // Working directory...
 Process p = pb.start();
 // Normal processing of the Process...

您甚至可以指定传递给进程的环境变量...

查看Java 文档以获取更多详细信息

这将起作用。
设置命令,然后创建运行时并在那里执行命令。

String command[] = new String[4];
command[0] = "cmd";
command[1] = "/k start cmd /k";
command[2] = "java";
command[3] = path;

Process p = Runtime.getRuntime().exec(command);
BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));  //This will allow you to supply with input
BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));  //This will provide you access to the errors.
pw = new PrintWriter(p.getOutputStream());      
pw.println("next commands");

PrintWriter对象将允许您执行更多命令。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM