在项目中使用到了图片,可以将图片放在src文件夹的外部,也可以将图片放在src文件夹的内部.
1.图片放在src文件夹外部的,在.jar文件同级目录下,放入图片所在的文件夹,即可解决图片无法显示的问题.
2.图片放在src文件夹内部的,
首先在build成.jar文件或者通过eclipse export成.jar文件时,配置
一个ant的build.xml文件,在<target name="jar" depends="compile">这
一块里面,将image文件夹COPY进class文件的文件夹(这一块的写法请参考ANT脚本的写法).这样即可将图片build进.jar文件
然后,用以下方法处理图片,即可保证图片能够正常显示.
ClassLoader cl = this.getClass().getClassLoader();
URL iconURL = cl.getResource("com/hadeslee/yoyoplayer/pic/player/icon.png");
InputStream is = cl.getResourceAsStream("com/hadeslee/yoyoplayer/pic/player/icon.png");
if (iconURL != null) {
//注意,被打包进jar文件的资源,是不能通过路径来读取的
//需要读取该资源时,可以通过URL和InputStream来进行,具体使用如下
ImageIcon jlguiIcon = new ImageIcon(iconURL);
ImageLoader imageloader = new ImageLoader();
ImageData[] imageDatas = loader.load(is);
setIconImage(jlguiIcon.getImage());
config.setIconParent(jlguiIcon);
}
之前使用图片,比如用放在image里的图片1.jpg,一直都是用ImageIcon imp = new ImageIcon("image/1.jpg"),结果把类与资源图片打包成一个jar包后,图片总是不能显示,只有使image与jar包在同一目录下才能正常显示图片,原因是,当打包成jar后,image/1.jpg就是在.jar文件里面,对于操作系统来说,是不能将一个文件当成一个目录来继续生成路径的.。现在通过使用URL类,即可保证程序图片的正确显示.如果资源被打包进JAR文件,则不能通过路径来获取文件,如果需要操作文件,可以使用URL或者InputStream来进行.
其实不仅仅是图片,打包成.jar文件后,那些被打包进.jar文件的资源都不能正常访问.关于这一部分内容,请阅读【解惑】深入jar包:从jar包中读取资源文件
http://www.iteye.com/topic/483115
分享到:
相关推荐
### JAVA打包后读取自身JAR中的文件 #### 背景介绍 在Java开发过程中,经常需要将项目打包成一个可独立运行的JAR文件。这种打包方式不仅便于分发,还能保护项目的源代码不被轻易查看。然而,在打包过程中,可能会...
这个项目可能是一个自研的解决方案,其目标是创建一个Java版的"Everything"工具,这是一个快速的文件搜索工具,但目前可能还处于未完成状态。 首先,让我们深入理解“不使用任何jar包读取docx文件”。docx文件本质...
Java打包工具Fat-Jar是Java开发者在构建可执行的独立JAR文件时经常会用到的一种工具。它解决了Java应用程序依赖于多个外部库的问题,能够将所有必要的类和库资源打包进一个单一的JAR文件中,使得用户可以简单地通过...
本项目针对这一问题提出了一种解决方案,即分块生成多个Excel文件,然后将它们打包成ZIP文件供用户下载。下面我们将详细探讨这一过程涉及的关键知识点。 1. **Java处理Excel**: Java中常用的库有Apache POI和...
解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题...-附件资源
在大型项目中,配置文件的读取往往涉及到多个模块和层级,如果每次读取都直接操作文件,不仅效率低下,还可能引发资源泄露或异常处理不当的问题。因此,封装读取配置文件的方法可以带来以下优势: 1. **提高代码可...
总的来说,这个Java Maven项目提供了一个方便的解决方案,使得开发者能够在Java应用中轻松地将图片转换为WebP格式,从而利用WebP的高效压缩优势,优化网站或应用程序的加载速度。通过理解并应用上述技术,你可以将这...
在使用SpringBoot进行开发时,我们经常会遇到在开发环境中能够正常读取resources目录下的文件,但是一旦将应用打包成jar文件并部署到服务器上运行时,就无法访问到这些资源文件的问题。这是因为SpringBoot的打包机制...
本项目实现了一个基于Socket的文件传输方案,其中Java作为服务端,C++作为客户端,使得Windows环境下的文件能够在两个程序之间安全、高效地传递。以下是对这个程序设计和实现的关键知识点的详细说明: 1. **Java ...
Java程序在Windows环境下通常以JAR(Java Archive)文件的形式存在,这种文件是无法...但是需要注意,这种方法并不适用于所有情况,例如大型复杂的Java应用,可能需要更专业的解决方案,如Excelsior JET或launch4j等。
在Java编程环境中,将PDF和Word文档转换成JPEG图片并打包成可执行文件(EXE)是一项常见的需求,尤其在自动化处理文档或跨平台展示内容时。本项目提供了一个解决方案,利用了Apache POI和PDFBox两个开源库,以及exe4...
然而,在进行项目打包过程中,有时会遇到资源文件(如配置文件、图片等)未能正确打包到最终的可执行文件中,这可能会导致程序运行时出现错误。本文将详细解释这个问题的原因,并提供两种解决方案。 问题描述: 当...
在IT行业中,处理数据时,Excel是一个非常常见且实用的工具。Apache POI是一个流行的Java库,它允许程序员创建、...如果你在实际开发中遇到任何问题,记得查阅相关的文档和教程,它们会提供详细的解决方案和最佳实践。
Java是一种广泛使用的编程语言,尤其在企业级应用和服务器端开发中占据主导地位...在实际项目中,开发者经常需要结合这些知识点,根据需求构建文件操作的解决方案。理解并熟练运用这些API对于Java开发者来说至关重要。
为了解决这一问题,我们可以利用Spring Boot结合Java编写一个简单的服务端逻辑,实现将多个文件打包成一个ZIP文件供用户一次性下载。这种方案不仅可以提高用户体验,还能有效减少网络传输次数,提升效率。 #### 二...
6. **jar文件**:打包后的jar文件是Java应用程序的可执行形式,由Java Archive Tool(jar)打包而成。它包含了编译后的.class文件和其他资源,用户可以通过java -jar命令直接运行。 7. **安全性**:文件传输可能...
这种集成方式不仅充分利用了PaddleOCR的强大功能,也发挥了Java在后端服务上的稳定性和易用性,为开发者提供了一种实用的解决方案。在实际应用中,可以根据具体需求进行优化和扩展,比如添加多线程处理、错误处理...
10. **毕业设计和论文**:对于毕业设计,除了实现功能性的代码之外,还需要撰写详细的论文,阐述设计思路、技术选型、实现过程、遇到的问题及解决方案,以及性能评估等方面的内容。 综上所述,这个实践项目涵盖了...