Java 在jar中找不到文件
我在JavaSwing应用程序中工作。我使用的图标图像放在上传文件夹中。当我运行我的项目时,它运行良好 我将我的项目导出为jar。当我运行jar文件时,它会显示未找到文件错误 这是我的密码Java 在jar中找不到文件,java,file,jar,embedded-resource,Java,File,Jar,Embedded Resource,我在JavaSwing应用程序中工作。我使用的图标图像放在上传文件夹中。当我运行我的项目时,它运行良好 我将我的项目导出为jar。当我运行jar文件时,它会显示未找到文件错误 这是我的密码 BufferedImage img = ImageIO.read(new File(Config.IMAGE_RESOURCE_FOLDER + "/" + fileName)); 我假设您的文件在jar中。因此,将名为Locator的类放在同一目录中。并使用以下代码: URL=locator.getUR
BufferedImage img = ImageIO.read(new File(Config.IMAGE_RESOURCE_FOLDER + "/" + fileName));
我假设您的文件在jar中。因此,将名为Locator的类放在同一目录中。并使用以下代码:
URL=locator.getURL(name+“.gif”);
Image img=Toolkit.getDefaultToolkit().getImage(url)
类定位器是:
包schachfiguren;
导入java.net。*;
公共类定位器
{
公共URL getURL(字符串pfad)
{
URL=this.getClass().getResource(pfad);
返回url;
}
}
pfad是文件的名称。例如,sbs.gif。应用程序资源在部署时将成为嵌入式资源,因此明智的做法是立即开始访问它们,就好像它们是嵌入式资源一样。必须通过URL而不是文件访问。有关如何形成URL.BTW的信息,请参阅-Config.IMAGE\u RESOURCE\u文件夹的值是多少(它指向什么路径)?Config.IMAGE\u RESOURCE\u FOLDER=“images”我正在静态方法中使用此功能。所以当我使用这个.getClass().getResource(“/path/to/the.resource”);它不起作用了。相反,我也尝试使用sttic方法类。但不工作。您的代码当前正在查找目录
/images
中的文件,其中
是当前目录,即启动java
程序的目录。因此,如果您没有从正确的目录执行Java,或者如果您的图像位于名为uploads
的文件夹中,则可能无法工作。只有当文件与Locator类不在同一目录中时,我才会收到NullPointerException。我的图像文件夹位于我的src文件夹之外。我将图像移动到src文件夹中。它正在工作。但当它在外部时,它对正常的项目运行有效,但对jar运行无效。但是得到了同样的结果。然后我将其移动到src
中,然后尝试您的代码。这对双方都有效。我认为images
insidesrc
不是好的做法。不管怎样,它现在起作用了。谢谢。