`

java项目打包后,无法显示图片或无法读取文件问题解决方案

阅读更多
在项目中使用到了图片,可以将图片放在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
分享到:
评论
1 楼 xiaohuafyle 2012-07-02  
没有评论不幸福

相关推荐

    JAVA打包后读取自身JAR中的文件.pdf

    ### JAVA打包后读取自身JAR中的文件 #### 背景介绍 在Java开发过程中,经常需要将项目打包成一个可独立运行的JAR文件。这种打包方式不仅便于分发,还能保护项目的源代码不被轻易查看。然而,在打包过程中,可能会...

    java版everything+纯java不用任何包读取office中word文件

    这个项目可能是一个自研的解决方案,其目标是创建一个Java版的"Everything"工具,这是一个快速的文件搜索工具,但目前可能还处于未完成状态。 首先,让我们深入理解“不使用任何jar包读取docx文件”。docx文件本质...

    java打包工具【fat-jar】

    Java打包工具Fat-Jar是Java开发者在构建可执行的独立JAR文件时经常会用到的一种工具。它解决了Java应用程序依赖于多个外部库的问题,能够将所有必要的类和库资源打包进一个单一的JAR文件中,使得用户可以简单地通过...

    java导出30万数据量的excel(采用生成多个excel,最后打包zip)

    本项目针对这一问题提出了一种解决方案,即分块生成多个Excel文件,然后将它们打包成ZIP文件供用户下载。下面我们将详细探讨这一过程涉及的关键知识点。 1. **Java处理Excel**: Java中常用的库有Apache POI和...

    解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题...-附件资源

    解决Spring的java项目打包后执行出现“无法读取方案文档...“、“原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是...”问题...-附件资源

    封装读取配置文件

    在大型项目中,配置文件的读取往往涉及到多个模块和层级,如果每次读取都直接操作文件,不仅效率低下,还可能引发资源泄露或异常处理不当的问题。因此,封装读取配置文件的方法可以带来以下优势: 1. **提高代码可...

    java 图片转webp格式代码,maven项目

    总的来说,这个Java Maven项目提供了一个方便的解决方案,使得开发者能够在Java应用中轻松地将图片转换为WebP格式,从而利用WebP的高效压缩优势,优化网站或应用程序的加载速度。通过理解并应用上述技术,你可以将这...

    Java打包程序转换为 windows exe

    Java程序在Windows环境下通常以JAR(Java Archive)文件的形式存在,这种文件是无法...但是需要注意,这种方法并不适用于所有情况,例如大型复杂的Java应用,可能需要更专业的解决方案,如Excelsior JET或launch4j等。

    解决SpringBoot打成jar运行后无法读取resources里的文件问题

    在使用SpringBoot进行开发时,我们经常会遇到在开发环境中能够正常读取resources目录下的文件,但是一旦将应用打包成jar文件并部署到服务器上运行时,就无法访问到这些资源文件的问题。这是因为SpringBoot的打包机制...

    java与c++传文件程序

    本项目实现了一个基于Socket的文件传输方案,其中Java作为服务端,C++作为客户端,使得Windows环境下的文件能够在两个程序之间安全、高效地传递。以下是对这个程序设计和实现的关键知识点的详细说明: 1. **Java ...

    java转换pdf、word为jpg图片,并打包exe

    在Java编程环境中,将PDF和Word文档转换成JPEG图片并打包成可执行文件(EXE)是一项常见的需求,尤其在自动化处理文档或跨平台展示内容时。本项目提供了一个解决方案,利用了Apache POI和PDFBox两个开源库,以及exe4...

    解决idea打包成功但是resource下的文件没有成功的问题

    然而,在进行项目打包过程中,有时会遇到资源文件(如配置文件、图片等)未能正确打包到最终的可执行文件中,这可能会导致程序运行时出现错误。本文将详细解释这个问题的原因,并提供两种解决方案。 问题描述: 当...

    excel读取,自动导出打包,poi学习文档

    在IT行业中,处理数据时,Excel是一个非常常见且实用的工具。Apache POI是一个流行的Java库,它允许程序员创建、...如果你在实际开发中遇到任何问题,记得查阅相关的文档和教程,它们会提供详细的解决方案和最佳实践。

    Java实现ocr图片识别(PaddleOCR)飞桨

    这种集成方式不仅充分利用了PaddleOCR的强大功能,也发挥了Java在后端服务上的稳定性和易用性,为开发者提供了一种实用的解决方案。在实际应用中,可以根据具体需求进行优化和扩展,比如添加多线程处理、错误处理...

    java的文件

    Java是一种广泛使用的编程语言,尤其在企业级应用和服务器端开发中占据主导地位...在实际项目中,开发者经常需要结合这些知识点,根据需求构建文件操作的解决方案。理解并熟练运用这些API对于Java开发者来说至关重要。

    Java传输文件(附有源码)

    6. **jar文件**:打包后的jar文件是Java应用程序的可执行形式,由Java Archive Tool(jar)打包而成。它包含了编译后的.class文件和其他资源,用户可以通过java -jar命令直接运行。 7. **安全性**:文件传输可能...

    JAVA文件压缩与解压缩实践(源代码+论文)

    10. **毕业设计和论文**:对于毕业设计,除了实现功能性的代码之外,还需要撰写详细的论文,阐述设计思路、技术选型、实现过程、遇到的问题及解决方案,以及性能评估等方面的内容。 综上所述,这个实践项目涵盖了...

    springboot项目打成jar包后无法获取static下的静态资源文件的问题分析

    标题和描述中提到的知识点是关于Spring Boot项目在打包成jar格式后,无法访问位于static目录下的静态资源文件的问题分析。这个问题在开发和部署时非常常见,因为Spring Boot应用在运行时,会将静态资源打包到jar文件...

Global site tag (gtag.js) - Google Analytics