猿问

如果 jar 需要外部文件,Desktop.getDesktop().open(file) 不起作用

我有一个 jar 文件file.jar,它需要一个文件夹,在 jar 所在的位置旁边放有图片。该程序加载图片并显示它们。


双击 或 可以正常工作java -jar file.jar,但是如果我尝试用另一个 java 程序打开它


File file = new File("path/file.jar");

Desktop.getDesktop().open(file)

它没有加载图片。


它可以是什么?


偶然的你
浏览 304回答 1
1回答

宝慕林4294392

运行时java -jar file.jar,jar 文件位于当前目录中,可能图片文件夹也是如此。当您双击 jar 文件时,代码会以包含文件夹作为当前目录运行。当您“打开”时path/file.jar,当前目录显然不同,因为否则您为什么需要限定 jar 文件名。由于您程序在当前目录上回复以查找图片文件夹,因此失败。解决方案,按照我的推荐顺序(鉴于我对您的代码知之甚少):将图片包含在 jar 文件中,然后使用getResourceAsStream.将图片包含在另一个 jar 文件中,让您的主 jar 文件的清单文件在类路径中包含图片 jar 文件。在尝试“打开”文件之前,请确保当前目录正确。
随时随地看视频慕课网APP

相关分类

Java
我要回答