1

任何人都可以帮助我如何将 bash 脚本编译为 java 程序的一部分。我正在编写一个简单的 java 程序,我想用它来调用 bash 脚本命令。


我的 java 代码如下所示:

    try{
            Process p = Runtime.getRuntime().exec("myscript.sh"); 
        BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); 

        String line = null;  

        while ((line = in.readLine()) != null){  
                    System.out.println(line); 
        }  
    }
    catch(IOException e){
        System.out.println(e.getMessage());
    }

并且“mysrcipt.sh”文件是一个简单的脚本,包含以下几行


!/bin/bash

echo "输入您的输入,然后 [ENTER]:"

读取 -e 选择

回声$选择


我的问题是,即使我输入多行并按回车键,程序也会等待脚本中读取命令的输入。

4

3 回答 3

3

您可以使用:

Process p = Runtime.getRuntime().exec("bash_script.sh"); 
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));  
String line = null;  
while ((line = in.readLine()) != null) {  
   // use bash script line output
}  
于 2012-09-18T21:47:26.617 回答
1

查看一些显示您要完成的工作的代码会很有帮助。

在 Java 中执行 bash 脚本可以使用类似以下的方法来完成...

Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("YOUR COMMAND STRING");

List<String> lines = IOUtils.readLines(process.getInputStream());
于 2012-09-18T21:51:19.830 回答
1

Runtime.exec() 是执行 bash 脚本所需要的,但请注意存在一些缺陷。在开始调用外部脚本时,我发现这是一篇好文章。

它是为 Windows 平台编写的,但讨论的很多内容也与 *nix 有关。

另请参阅此问题

于 2012-09-18T22:08:12.633 回答