gpt4 book ai didi

java - 从不同目录启动应用程序(.jar 文件)时如何获取位于类路径中的绝对文件路径?

转载 作者:行者123 更新时间:2023-12-02 04:50:22 26 4
gpt4 key购买 nike

假设 Java 应用程序文件夹包含以下文件:

app.jar
lib/file.exe

在 app.jar 中我这样调用 .exe:

String[] exeCmd = new String[]{"lib/file.exe"};
ProcessBuilder pb = new ProcessBuilder(exeCmd);
...

如果我从同一目录启动 .jar 文件 - 一切正常。但是,如果从不同的目录启动应用程序 - 无法找到 lib/file.exe 并且 ProcessBuilder 退出并出现错误“没有这样的文件或目录”。

我的问题是 - 尽管应用程序是从其他目录启动的,如何获取正确的 lib/file.exe 路径并将其提供给 ProcessBuilder

编辑:

现在我在想(不同的方法)那些.exe之类的文件我应该放在用户目录中,比如Windows操作系统中的“应用程序数据”,然后再使用它们?在 Unix 中通过调用 System.getenv("APPDATA");System.getProperty("user.home"); 可以很容易地找到路径。但另一方面 - 如果有很多 PC 用户 - 那么这些 .exe 文件将为每个用户重复(浪费磁盘空间)。

最佳答案

你可以这样做:

YourClass.class.getProtectionDomain().getCodeSource().getLocation().getPath(); 

关于java - 从不同目录启动应用程序(.jar 文件)时如何获取位于类路径中的绝对文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29296457/

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