java - 仅部分脚本由 Java 程序执行

标签 java shell processbuilder

我尝试从 Java 程序运行 shell 脚本,但整个脚本没有被执行。知道为什么我们会遇到这样的问题吗?

执行shell脚本的Java代码:

File file = new File("/path/to/script");
String COMMAND= "./run";
ProcessBuilder p = new ProcessBuilder(COMMAND);
p.directory(file);
try {
    Process startProcess= p.start();
} catch (IOException e) {
    e.printStackTrace();
}

脚本运行良好,但未执行整个脚本。似乎只执行了第一行。

最佳答案

如果您确定脚本开始运行,问题不在于java,而在于脚本本身。

差异的原因可能是路径错误或者环境错误。当您从控制台运行脚本时,您处于用户环境中,因此脚本可以使用所有环境变量。

尝试添加一些调试输出来解决问题。

关于java - 仅部分脚本由 Java 程序执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7945284/

相关文章:

java - AndroidManifest.xml - 指定的属性 'manifest' 不存在

java - 尝试使用三个数组Java获得三列数据

python - 自动ssh进入服务器的脚本

linux - Shell - 将 stderr 传递给第二个 shell 脚本并使用它

java - 如何测试基于 jline 的控制台应用程序

java - 在 Java 中运行批处理文件

java - "su <otheruser>"失败,返回 "standard in must be atty"

java - Gson gson = new Gson().toJson(data) - 不兼容的类型

java - 我正在尝试制作一个矩形,它需要用户输入来获取尺寸

regex - 如何使用正则表达式在 Unix 中搜索文件?