我有一个jar文件file.jar
,该文件需要一个在jar旁边的图片文件夹。该程序将加载图片并显示它们。
双击或java -jar file.jar
都可以正常工作,但是如果我尝试用另一个java程序打开它
File file = new File("path/file.jar");
Desktop.getDesktop().open(file)
它没有加载图片。
那会是什么?
答案 0 :(得分:2)
运行java -jar file.jar
时,jar文件位于当前目录中,并且图片文件夹也可能位于中。
双击jar文件时,代码将使用包含文件夹作为当前目录运行。
当您“打开” path/file.jar
时,当前目录显然有所不同,因为为什么还需要限定jar文件名。由于您在当前目录上进行编程以查找图片文件夹,因此该操作失败。
解决方案,按照我的推荐顺序(考虑到您对代码的了解很少):
将图片包含在jar文件中,然后使用getResourceAsStream
访问它们。
将图片包含在另一个jar文件中,让您的主jar文件的清单文件在类路径中包含图片jar文件。
在尝试“打开”文件之前,请确保当前目录正确。