gpt4 book ai didi

java - 如何从 Java 程序中调用 shell 脚本?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:56:08 28 4
gpt4 key购买 nike

我使用 ubuntu 10.04 和 eclipse。我创建了一个 shell 脚本,exam.sh:

#!/bin/bash 
echo "Hello World"

使用 chmod 755 exam.sh

在命令行上,我可以执行 ./exam.sh//ok 命令显示 Hello World

我想用java代码调用这个exam.sh,这是我的java代码:

public static void main(String[] args) {    
Runtime r = Runtime.getRuntime();
Process p = null;
String cmd[] = {"/bin/bash","cd","/home/erdi/Desktop", ".","/","exam.sh"};

try {
p = r.exec(cmd);
System.out.println("testing...");//ok
} catch (Exception e) {
e.printStackTrace();
}
}

这不起作用,我哪里出错了?是的,我知道我可以通过谷歌搜索,但我没有找到问题的答案。它提供了有关此功能的操作方法和教程,但我没有找到答案。

最佳答案

试试这个:

cmd[] = {"/bin/bash", "/home/ercan/Desktop/exam.sh"};

您可以直接在 shell 脚本上调用 bash。要运行命令字符串(如 cd),您需要使用 -c 开关。

如果您需要脚本的工作目录作为您的桌面,您可以使用 Runtime.exec 的另一个重载:

Process proc = Runtime.getRuntime().exec(cmd, new String[0], new File("/home/ercan/Desktop"));

或者,ProcessBuilder类使执行过程更好一些。

关于java - 如何从 Java 程序中调用 shell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6557629/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com