3

我正在尝试在 Java 程序中运行一个 bash 脚本文件,我正在使用这种方式:

Runtime rt = Runtime.getRuntime();

try {           
  Process proc = rt.exec("THE PATH FILE");        
  BufferedReaderinput=newBufferedReader(newInputStreamReader(proc.getInputStream()));
  String line=null;
  while((line=input.readLine()) != null) {
    System.out.println(line);
   }
} catch (IOException ex) {
  System.out.println(ex.toString());
}

但是当我从命令行运行它时,我在我的 bash 脚本中使用输入作为 $1 并且我想在我的 Java 程序中使用它来获取正确的输出。如何在我的 Java 程序中做到这一点?

4

2 回答 2

1

正如 Mike Thomsen 所建议的,您可以将命令行参数放入您的 java 应用程序中,并将它们传递给类似这样的脚本文件。

StringBuilder cmdLineArgs = new StringBuilder();  

for(String arg:args){   //in case you may have variable number of arguments
    cmdLineArgs.append(arg).append(" ");
}

现在将cmdLineArgs中收集的参数传递给您的脚本。

Process proc = rt.exec("YOUR SCRIPT " + cmdLineArgs.toString()); 
于 2012-11-10T15:44:45.320 回答
1

读取 Java 应用程序中的输入,然后启动一个如下所示的新进程:

bash myfile.sh arg[0] arg[1] arg[n]
于 2012-11-10T15:21:40.433 回答