如何执行';cd&x27;命令,然后是java中的linux命令

如何执行';cd&x27;命令,然后是java中的linux命令,java,Java,我有目录/tmp 然后我需要执行cd并转到那个文件夹。 然后我需要执行./executeScript准备 为了开始解决这个问题,我创建了一个目录/home/vulpini99/tmp。在这个目录中,我创建了bash脚本test.sh,它将为我们打开firefox: firefox 然后我在目录/home/vulpini99中创建了一个名为LinuxCommand.java的java文件 主要部分 cd只是一个内部shell命令,而不是一个可执行程序,因此我建议只使用bash脚本的完整路径。所以

我有目录/tmp 然后我需要执行cd并转到那个文件夹。
然后我需要执行./executeScript

准备

为了开始解决这个问题,我创建了一个目录
/home/vulpini99/tmp
。在这个目录中,我创建了bash脚本
test.sh
,它将为我们打开firefox:

firefox
然后我在目录
/home/vulpini99
中创建了一个名为
LinuxCommand.java
的java文件

主要部分

cd
只是一个内部shell命令,而不是一个可执行程序,因此我建议只使用bash脚本的完整路径。所以我们要执行的命令是

bash/home/vulpini99/tmp/test.sh

在Java中,您可以使用
运行时
实现此目的:

import java.io.IOException;

public class LinuxCommand {

    public static void main(String[] args) {
        Runtime run = Runtime.getRuntime();
        try {
            run.exec("bash /home/vulpini99/tmp/test.sh");
        }
        catch(IOException e) {
            e.printStackTrace();
        }
    }
}

了解java中的ProcessBuilder或Runtime.exec。在运行时中,直接给出脚本所在的路径,而不是先执行cd,然后再执行脚本。谢谢@vulpini88。。。非常感谢您的回复,但我不想硬编码路径。你有什么建议吗?如果你真的想改变这条路,事情会变得很复杂。关于这方面的一些想法可以在上找到。这能回答你的问题吗?非常感谢。。。回答你的问题,我想构建路径而不是硬编码,事实上,我想在不同的服务器中以tar格式部署我的应用程序,因此如果我硬编码路径,它可能会给我FNFoundException…@SoumyaRB如果我的回答对你有帮助,如果你投票和/或接受它,我将不胜感激。如果需要,可以通过单击复选标记和零上方的三角形来完成此操作。