gpt4 book ai didi

java - ProcessBuilder 在资源文件夹中找不到 sh 文件 - Spring Boot

转载 作者:行者123 更新时间:2023-12-02 01:51:15 24 4
gpt4 key购买 nike

我在互联网上搜索了一段时间的解决方案,但没有一个清楚地说明 sh 文件将如何执行。

我有一个 shell 脚本 install.sh,我将其保存在 resources 目录中。我想从 ProcessBuilder 运行它。无论我尝试什么,我都会收到 No such file or directory 错误。这是我的代码:

String masterURL = config.getMasterUrl();
String adminToken = config.getAdminToken();

ProcessBuilder installScriptBuilder = new ProcessBuilder();
installScriptBuilder.command("install.sh", dir, namespace);
installScriptBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);

Map<String,String> installEnv = installScriptBuilder.environment();
installEnv.put("URL", masterURL);
installEnv.put("TOKEN", adminToken);

try {
Process p = installScriptBuilder.start();
} catch (IOException e) {
e.printStackTrace();
}

我在其他答案中读到过有关创建临时文件的内容,但没有一个明确说明如何解决此问题。我使用 Spring Initializr 来创建我的项目。

最佳答案

您可以使用“classpath:install.sh”选择资源文件。

在这种情况下我们不能这样做。我们需要路径本身:

final ClassLoader classLoader = getClass().getClassLoader();
final File file = new File(classLoader.getResource("install.sh").getFile());
final ProcessBuilder installScriptBuilder = new ProcessBuilder();
installScriptBuilder.command(file.getPath());

关于java - ProcessBuilder 在资源文件夹中找不到 sh 文件 - Spring Boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52964894/

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