Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在unixshell中运行命令,然后从/到java应用程序获取输出_Java_Shell_Io - Fatal编程技术网

如何在unixshell中运行命令,然后从/到java应用程序获取输出

如何在unixshell中运行命令,然后从/到java应用程序获取输出,java,shell,io,Java,Shell,Io,我知道如何从java应用程序执行shell命令。应该是这样的: String command = "java -version"; Process proc = null; try { proc = Runtime.getRuntime().exec(command); } catch (IOException e) { System.out.print(e); } 我希望将此命令的输出返回到我的java应用程序,而不将输出打印到某个临时文件,然后从我的应用程序读取该文件。这可能吗?您需要

我知道如何从java应用程序执行shell命令。应该是这样的:

String command = "java -version";
Process proc = null;
try {
  proc = Runtime.getRuntime().exec(command);
}
catch (IOException e) {
System.out.print(e);
}

我希望将此命令的输出返回到我的java应用程序,而不将输出打印到某个临时文件,然后从我的应用程序读取该文件。这可能吗?

您需要使用ProcessBuilder

Process process = new ProcessBuilder(
"C:\\PathToExe\\exe.exe","param1","param2").start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;

System.out.printf("Output of running %s is:", Arrays.toString(args));

while ((line = br.readLine()) != null) {
  System.out.println(line);
}

已在stackoverflow上找到的代码在java中执行外部程序

您需要使用ProcessBuilder

Process process = new ProcessBuilder(
"C:\\PathToExe\\exe.exe","param1","param2").start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;

System.out.printf("Output of running %s is:", Arrays.toString(args));

while ((line = br.readLine()) != null) {
  System.out.println(line);
}

已在stackoverflow上找到的代码在java中执行外部程序

您需要使用ProcessBuilder

Process process = new ProcessBuilder(
"C:\\PathToExe\\exe.exe","param1","param2").start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;

System.out.printf("Output of running %s is:", Arrays.toString(args));

while ((line = br.readLine()) != null) {
  System.out.println(line);
}

已在stackoverflow上找到的代码在java中执行外部程序

您需要使用ProcessBuilder

Process process = new ProcessBuilder(
"C:\\PathToExe\\exe.exe","param1","param2").start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;

System.out.printf("Output of running %s is:", Arrays.toString(args));

while ((line = br.readLine()) != null) {
  System.out.println(line);
}

在java中的stackoverflow Execute external program上已经找到的代码请注意processbuilder与解决方案没有任何关系,只是在process类中使用getinputstream方法。请注意processbuilder与解决方案没有任何关系,这只是在流程类中使用getinputstream方法。请注意,processbuilder与解决方案无关,而解决方案只是在流程类中使用getinputstream方法。请注意,processbuilder与解决方案无关,而解决方案只是在流程类中使用getinputstream方法。