Eclipse下导出java程序可执行的jar包图片无法显示问题的一种解决方法

说明:在eclipse中运行java程序的时候一切正常,可是当把jar包导出的时候却发现图片没法显示,这估计是java程序的各种配置和路径问题所导致,后来找到一种解决方法,供遇到这方面问题的学习java程序的鞋同参考:

Java项目下的目录结构如下:

其中class类放在包:package accpedu; (即实际是在如上bin/accpedu文件夹下面)

通过下面的方法来引用图片时,在eclipse里面执行是可以正常显示图片的:

ImageIcon image1 = new ImageIcon();

ImageIcon image2 = new ImageIcon();

ImageIcon image3 = new ImageIcon();

ImageIcon image4 = new ImageIcon();

ImageIcon image5 = new ImageIcon();

image1 = new ImageIcon("images/butffler.jpg");

image2 = new ImageIcon("images/username.gif");

image3 = new ImageIcon("images/password.gif");

image4 = new ImageIcon("images/warning.gif");

image5 = new ImageIcon("images/role2.jpg");

但是导出jar包school2.jar后执行,却发现图片没有显示出来:

经过一番分析和调试之后,找到了一种解决方法,将引用图片的那段代码修改为下面的方式:

//这种方法即可以在eclipse下找到图片路径,也可以在导出的jar包中找到图片路径

//图片必须要放在class目录下面

java.net.URL imgURL1 = LoginFrame.class.getResource("butffler.jpg");

image1 = new ImageIcon(imgURL1);

java.net.URL imgURL2 = LoginFrame.class.getResource("username.gif");

image2 = new ImageIcon(imgURL2);

java.net.URL imgURL3 = LoginFrame.class.getResource("password.gif");

image3 = new ImageIcon(imgURL3);

java.net.URL imgURL4 = LoginFrame.class.getResource("warning.gif");

image4 = new ImageIcon(imgURL4);

java.net.URL imgURL5 = LoginFrame.class.getResource("role2.jpg");

image5 = new ImageIcon(imgURL5);

然后还需要导入一个图片的jar包,由于这种方法必须把图片文件(如butffler.jpg)放在class的相同目录下,即放到目录accpedu下,否则会找不到图片路径的;这样需要把images文件夹改名为accpedu并压缩为accpedu.jar包,其中accpedu文件里面就是直接的图片文件,没有多余的文件夹,这是因为class类放在包:package accpedu;中;然后就可以导入accpedu.jar到项目中,如下:

通过这样的命名规则(package accpedu;)导入accpedu.jar包后,其图片会自动导入到了class相同的目录下:

然后再导出java程序的可执行的jar包school.jar:

解压school.jar包后,图片的确导入到了class相同的目录下:

注意:图片的jar包的命令规则必须与class在包中package的结构一致,这样才能正确的把需要导入的图片导到class相同的目录下;另外,用这种方法来显示图片,必须确保图片导到了class目录下,否则程序运行会出现问题,假如图片文件名写错了butffler.jpg 写成butffler1.jpg,即会出现下面问题,不仅图片显示不出来,更严重的是整个登录框可没显示完整,这是需要注意的:

到此,上述就是一种关于解决eclipse导出java程序的可执行的jar包的图片无法显示的方法!

时间: 2024-12-13 17:18:58

Eclipse下导出java程序可执行的jar包图片无法显示问题的一种解决方法的相关文章

cmd下运行java文件时,找不到或无法加载主类的解决方法

最近再看java,却被一个看似很基础的hellorworld头疼了十几分钟,百度了一下,若你在cmd下编辑及运行.java文件时报错,解决方案如下,如图所示: d盘根目录下的.java文件. 打开cmd,进入d盘根目录进行javac demo.java,如图所示: 这一步是不会报错的,因为只要你的classpath设置成功,不会存在报错问题, 此时我们看到刚刚编译的demo.class已经出现在根目录下. 继续下一步时,我们会发现cmd报错,如图所示: 相信很多刚入门的同学们都遇到了这个问题,百

java程序中没有错,但是项目上面显示一个红叉的解决办法

错误信息: 报Description  Resource Path Location Type Java compiler level does not match the version of the installed Java project facet.出现这个问题的原因是因为,eclipse/myeclipse的jdk编译版本与出现问题的项目JDK编译版本不一致所导致! 工具/原料 eclipse/MyEclipse 百度经验:jingyan.baidu.com 方法/步骤 1 先设置

执行shell脚本时报错let: not found的几种解决方法

首先阐述几个命令 echo $0   显示当前使用的shell版本 dpkg-reconfigure 设置软件包类型 脚本报错原因: Ubuntu默认使用的shell解析是dash,dash只有bash一部分的功能 首先我的系统执行 $  echo $0 -bash $   sudo dpkg-reconfigure dash 选择 No,使用bash作为默认shell 此时依然无法解决问题 经过试验 方法一: 脚本中#/bin/bash改为!/bin/sh 方法二: 使用bash shell_

eclipse编写的java程序在dos环境下运行的写法

一般情况下如果环境变量没有设置好的话,在dos下运行程序会出现错误,一般都是:错误: 找不到或无法加载主类xxxxx.. 但是在环境变量正确的条件下在dos下运行eclipse编写的java程序也会出现上述的错误,通常是因为eclipse下自动加入了包,所以要把平时的: javac XXX.java java XXX.class改一下 变为: javac -d . XXX.java java 包名.XXX 如此即可

JAVA设置环境变量和在DOS下运行java程序

在学校实训的这几天,老师带着我们开始深入的复习java.这是第一天的内容哦 对于“JAVA设置环境变量和在DOS下运行java程序”,许多初学者是陌生的,但了解这个却对后期的学习很重要. http://blog.sina.com.cn/s/blog_639403840100i5rt.html 下面先来了解一下什么是dos吧 dos 我们使用计算机接触最频繁的就是DOS.DOS是英文Disk Operating System的缩写,意思是“磁盘操作系统”,顾名思义,DOS主要是一种面向磁盘的系统软

Eclipse下的java工程目录问题和路径问题理解

1.Eclipse下的java工程都有哪些文件夹? 答:new java project时,会默认创建SRC源代码目录,并默认创建一个bin目录作为输出目录,输出目录是指生成的class文件和配置文件地址. 所以Eclipse创建的java工程,默认就两个文件夹,src和bin. 2.当点击Eclipse运行时候java jdk会默认执行编译,并将编译后的java文件,生成class文件放到项目目录下的bin文件夹里,以.class命名结尾. 注:即使某个类有bug错误,不能编译通过.但只要点击

Eclipse下的Java反编译插件 查看源代码不再困难

Eclipse下的Java反编译插件:Eclipse Class Decompiler,整合了目前最好的2个Java反编译工具Jad和JD-Core,并且和Eclipse Class Viewer无缝集成,能够很方便的使用本插件查看类库源码,以及采用本插件进行Debug调试. 转载自:http://bbs.csdn.net/topics/390263414 Eclipse Class Decompiler插件: http://download.csdn.net/detail/ibm_hoojo/

java程序的执行

Java平台和语言最开始只是SUN公司在1990年12月开始研究的一个内部项目.SUN公司的一个叫做帕特里克·诺顿的工程师被自己开发的C和C语言编译器搞得焦头烂额,因为其中的API极其难用.帕特里克决定改用NeXT,同时他也获得了研究公司的一个叫做"Stealth 计划"的项目的机会. ??"Stealth 计划"后来改名为"Green计划",JGosling(詹姆斯·高斯林)和麦克·舍林丹也加入了帕特里克的工作小组.他们和其他几个工程师一起在加

关于cmd下运行java程序遇到的小问题

关于JDK和JRE: JDK全称是Java Development Kit,是java语言的软件开发工具包,它包含了java的运行环境和开发工具. JRE全称是Java Runtime Environment,即java运行环境.也就是说JRE是包含在JDK里面的. 如果你只安装了jre,那么你只能运行已经编译好的字节码文件,即.class文件.如果是java源文件的话,就需要安装jdk,利用jdk中的javac将.java文件编译成.class字节码文件,然后利用java.exe解释编译好的.