java - 如何使用Java在windows上启动bat文件,在linux上启动sh文件从特定目录运行

标签 java linux bash batch-file

我正在尝试制作一个程序,在 Windows 上运行时将执行 bat 文件,在 Linux 上运行时将执行 sh 文件,但我需要 bash/sh 文件才能从特定目录开始运行。

例如: 我的程序位于 C:\Program\test.jar 我的 bash 文件位于 C:\File\start.bat 我想让 java runnable 从它的文件夹而不是 test.jar 运行目录执行 start.bat 文件。

我尝试使用 Runtime.getRuntime().exec("cmd/C start\"\"\"C:\File\start.bat""); 它有效,但它从 C:\Program\test.jar 运行 bat 文件,对于 bat 文件的功能,我需要它从 C:\File\start.bat 运行.

我也需要为 Linux 做同样的事情,所以我在这里问,因为在修复 bat 问题后,这个问题可能也会困扰我。

最佳答案

使用ProcessBuilder并使用 ProcessBuilder::directory 设置工作目录

关于java - 如何使用Java在windows上启动bat文件,在linux上启动sh文件从特定目录运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44034913/

相关文章:

java - 如何在DTO模型中实现JsonNode类型的字段

linux - yum 删除干净卸载 HDP 期间的问题

java - 使用 JNI 可能会提高性能吗?

java - 如何在枚举中使用构造函数?

java - 如何避免将空值发送到java中的sql中

linux - 如何解决在docker上运行airflow时出现 'no space left on device'错误

linux - (apache2.service 的作业失败,因为控制进程退出并出现错误代码)在尝试激活 webdav 模块后发生

bash - 获取函数返回值

bash - 如何将位置参数传递给交互式 bash session

bash脚本: Mass Restore Files with Sleuthkit