gpt4 book ai didi

java - Runnable jar 使用 java -jar 运行良好,但双击时出现问题

转载 作者:行者123 更新时间:2023-12-02 08:20:15 25 4
gpt4 key购买 nike

我正在使用 eclipse IDE,并且刚刚使用“export->Runnable Jar”导出了我的项目。在我的代码中,我使用

加载了 map
URL map1url = this.getClass().getResource("map01.txt");

及以后

inputmap = new File(map1url.getFile());

然后使用扫描其数据

Scanner sc = null;
try {
sc = new Scanner(inputmap);
} catch (FileNotFoundException e) {
e.printStackTrace();
}

现在,当我将map01.txt打包到jar中,然后双击它时,它会运行,但找不到map01.txt。当我使用 java -jar 时,它运行,但仍然找不到 map 。当我将map01.txt放在与jar文件相同的目录中,但实际上不在jar中,然后双击它时,它会运行,但找不到 map 。如果我使用 java -jar 运行它,它会运行并加载 map 。造成这个问题的原因是什么?我该如何修复它? map01.txt 是唯一不起作用的资源。我已经加载了许多放入 jar 文件中的图像,它们都加载并显示得很好。对于我使用的图像

URL url = this.getClass().getResource("myImage.gif");
try {
BufferedImage myImage = ImageIO.read(url);
} catch (IOException e) {
}

为什么它们有效,而我的 map 无效?我该如何解决这个问题,以便我可以将所有资源打包到一个 jar 中,然后双击它来运行?

最佳答案

当您说“new File(map1url.getFile())”时,您最终会得到一个引用当前目录中文件的 java.io.File。如果该文件实际上位于进程的当前目录中(如果该文件位于 shell 的当前目录中并且您使用“java -jar”,则会发生这种情况,那么这将起作用;否则,它将不起作用。

为什么不直接使用 getResource().openStream() 来读取 map 文件?

关于java - Runnable jar 使用 java -jar 运行良好,但双击时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5608286/

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