gpt4 book ai didi

java - 为什么我不能访问我的 jar 中的文件,除非我在运行它时位于 Jar 所在的文件夹中?

转载 作者:行者123 更新时间:2023-11-29 07:22:58 26 4
gpt4 key购买 nike

我最近创建了一个应用程序,并成功地将其压缩到 c:/my/folder/app.jar。在以下情况 [Startup #1] 中,它就像一个魅力:

  • 打开命令
  • cd 到 c:/my/文件夹
  • java -jar app.jar

但是当我这样做时,它不起作用 [Startup #2]:

  • 打开命令
  • cd 到 c:/my/
  • java -jar 文件夹/app.jar

因为 app.jar 包含我尝试在我的应用程序中运行的 .exe 文件:

最终进程 p = Runtime.getRuntime().exec("rybka.exe");

它在示例 2 中不起作用,因为它找不到文件 rybka.exe。

有什么建议吗?

最佳答案

这样的事情是更好的前进方式。将 exe 从 jar 复制到一个临时位置并从那里运行它。然后,您的 jar 也可以通过 webstart 等方式执行:

InputStream src = MyClass.class.getResource("rybka.exe").openStream();
File exeTempFile = File.createTempFile("rybka", ".exe");
FileOutputStream out = new FileOutputStream(exeTempFile);
byte[] temp = new byte[32768];
int rc;
while((rc = src.read(temp)) > 0)
out.write(temp, 0, rc);
src.close();
out.close();
exeTempFile.deleteOnExit();
Runtime.getRuntime().exec(exeTempFile.toString());

关于java - 为什么我不能访问我的 jar 中的文件,除非我在运行它时位于 Jar 所在的文件夹中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1251006/

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