输出一个bash脚本的结果

例如,如果我select运行一个bash脚本,输出(回显)时间,例如CheckDate.sh 。 我怎么能从Java运行这个,然后在我的Java程序中打印bash脚本(date)的结果?

Solutions Collecting From Web of "输出一个bash脚本的结果"

试试这个代码。

 String result = null; try { Runtime r = Runtime.getRuntime(); Process p = r.exec("example.bat"); BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); String inputLine; while ((inputLine = in.readLine()) != null) { System.out.println(inputLine); result += inputLine; } in.close(); } catch (IOException e) { System.out.println(e); } 

一种方法是在Process对象中分配脚本执行,并从输入流中检索脚本输出。

 try { // Execute command String command = "ls"; Process process = Runtime.getRuntime().exec(command); // Get the input stream and read from it InputStream in = process.getInputStream(); int c; while ((c = in.read()) != -1) { process((char)c); } in.close(); } catch (IOException e) { LOGGER.error("Exception encountered", e); } 

另一种方法是让你的bash脚本把它的输出写入一个文件,然后从Java中读取这个文件。

祝你好运。

java.lang.Process类是为此目的而设计的。 您可以使用(简单的) java.lang.Runtime.exec函数或(更复杂的) java.lang.ProcessBuilder类在Java中运行外部进程。 最后,都给你一个java.lang.Process的实例,你可以调用它的getInputStream方法来获取一个可以读取其输出的流。

请参阅Javadoc了解更多信息。