我正在从 Java 程序中执行一个 shell 脚本。我已经使用运行时类实现了它。下面是我实现的代码
final StringBuilder sb = new StringBuilder("test.sh");
sb.append("/path to/my/text file");
final Process p = Runtime.getRuntime().exec(sb.toString());
这里 sb 是字符串缓冲区对象,我在其中附加参数并在 exec 方法中使用它。但问题是我传递的参数“/path to/my/text file”被认为是 4 个参数
/path
to
/my/text
file
但是如果在 shell 中作为 test.sh "/path to/my/text file"运行,它被作为单个参数。我如何使用 Java 代码实现相同的目的,我需要将此路径视为单个参数。任何请将是非常可观的。
最佳答案
使用ProcessBuilder
,这就是它的设计目的,让您的生活更轻松
ProcessBuilder pb = new ProcessBuilder("test.sh", "/path", "/my/text file");
Process p = pb.start();
关于java - 从 java 代码运行 shell 脚本并传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12812345/