我正在尝试从可执行JAR文件加载图像。
我跟踪了这里的信息,然后是这里的信息。
这是检索图像的函数:
public static ImageIcon loadImage(String fileName, Object o) {
BufferedImage buff = null;
try {
buff = ImageIO.read(o.getClass().getResource(fileName));
// Also tried getResourceAsStream
} catch (IOException e) {
e.printStackTrace();
return null;
}
if (buff == null) {
System.out.println("Image Null");
return null;
}
return new ImageIcon(buff);
}
这就是它的名称:
logo = FileConverter.loadImage("/pictures/Logo1.png", this);
JFrame.setIconImage(logo.getImage());
这是一个简单的对象。我也不会得到NullPointerException,除非它被UI屏蔽。
我检查了JAR文件,图像位于:
/图片/标识1。巴布亚新几内亚
当前代码在eclipse中以及导出到JAR并在终端中运行时都有效,但在双击JAR时不起作用,在这种情况下,图标是默认的JFrame图标。
谢谢你的帮助。可能只有我遗漏了一些明显的东西。
我曾经遇到过类似的问题,结果是由于相对寻址问题以及我的路径不知何故在错误的地方。我从我编写的一些旧代码中挖掘出这个问题,使其使用绝对路径。这似乎解决了我的问题;也许它对你有用。
String basePath = (new File(".")).getAbsolutePath();
basePath = basePath.substring(0, basePath.length()-1);
FileConverter.loadImage(basePath+"/pictures/Logo1.png", this);
问题内容: 我目前正在编写一个程序,需要以jar形式发送给朋友。该程序具有需要加载的图像,以便程序正常运行,我希望所有图像都包含在一个jar中。目前,它无法从可执行jar或通过命令行运行时运行。它可以在netbeans中工作。 这是我正在使用的代码: 要加载我正在使用的图像: 对于我也尝试过的网址 应该在其中创建图像的行是: 我的jar文件设置为在其顶层包含类文件的文件夹和资源文件夹。 我一直在寻
问题内容: 我已经尝试搜索,但仍然没有解决方案。当我导出到jar文件时,我的所有图像突然不再起作用。它们在Eclipse中运行良好,并且我已确保它们在jar文件中。我尝试使用get资源方法并制作一个图像加载器类来自动向上目录树,但它仍然失败。这是我所做的: 我将发送的路径如下所示:“ doc / icon.png” 我将所有图像放置在doc文件夹中,结构是最终项目,在内部有doc文件夹,然后是sr
我正在eclipse中开发一个java项目。为了分发程序,我通过eclipse中的导出函数创建了一个可运行的.jar文件。 在我的程序中,加载存储在名为“tableImages”的文件夹中的多个图像。我通过类加载器加载图像(您将在下面找到代码片段)。问题如下:从.jar文件执行程序时,在加载上述文件夹中的.png文件之一时,它会抛出 NullPointerException。现在有趣的是,完全相同
问题内容: 这是我尝试将Maven项目部署到tomcat时遇到的错误 错误: 但是WEB-INF \ lib中有javax.servlet-api-3.0.1.jar 问题答案: 信息:validateJarFile(D:\ Softwares \ tomcat \ apache-tomcat-7.0.50 \ webapps \ myWebApp_1 1 \ WEB-INF \ lib \ ja
如何确认我的JAR文件已加载到Coldfusion中?我在CF10上。 我目前得到这个错误: 我的网站结构如下: 在我的申请中。cfc,我有以下代码: 这是我调用一切的代码: 更新#1 我在检查administor时发现了设置摘要,其中列出了服务器Java类路径。我添加了jar文件的位置并重新启动了服务器。即使路径存在于Administrator中的类路径中,我仍然会遇到相同的错误。 更新2 添加
这是我当前的目录结构(包含在目录中): 基本上来自,我正在尝试访问。 我尝试了很多变体来工作,现在我只有: 我尝试改变路径使用,使用函数,但似乎没有工作。 当我使用生成jar并运行jar文件时,它不会显示图像。 我执行