java项目打成jar包后图片无法显示

java项目打成jar包后图片无法显示我的路径是这样的看图

第1个回答  2017-12-15
你的图片的路径不在jar包中吧,你要注意写你的图片路径啊,还需要包含在你打的jar包中才可以正常使用哦^_^追问

路径怎么写啊!!

怎么写才对

第2个回答  2017-12-15
例如:以Windows为例说明,以下是开发项目“AAA”的部分代码,开发和调试时的根路径为D:\aaa,这样程序运行时当前路径为"D:\aaa",大家可以用System.getProperty("user.dir")方法求证当前用户工作路径。
//下面代码使用了基于当前工作路径的方式指定了文件对象
File imageFile = new File("/images/sample.gif");
ImageIcon imageIcon = new ImageIcon(File.toURI);
File iniFile = new File("/conf.ini");
FileInputStream fileInputStream = new FileInputStream(iniFile.toURI);
/*
*这样程序会去找以下两个文件:
* D:\aaa\images\sample.gif
* D:\aaa\conf.ini
*/
以上的代码应用绝对路径信息指定了文件对象,在开发和调试期(未打包前),是没有问题的,但在打包后,由于所有图片文件和文本文件都将打包到Jar文件 中,由于System中的"user.dir"属性发生了变化,会造成用绝对路径的方式无法找到Jar文件中包含路径和文件。例如大家将上面的项目 “AAA”中的所有类文件、图片文件和文本文件等打包为E:\aaa.jar文件并发布,在用户执行该aaa.jar中的程序时,当前路径取决于用户运行 该程序的当前路径。
例如: 在“E:\”目录下运行该程序:
E:\> java -jar aaa.jar
此时用户的当前路径(System的user.dir属性)是“E:\”,而非开发者所期望的“E:\aaa”,所以会按以下路径来搜索文件:
E:\images\sample.gif
E:\conf.ini
但是所有的图片和文本文件包含在E:\aaa.jar文件中,所以会致使程序无法正常运行。
问题解决:
为了解决上述问题,推荐采用Java本身以类为基准的路径搜索方式。
例如:
/*
*以下代码采用了以当前类为基准的路径指定方式。下面这行代码在运行时,会
*在jar文件中的根路径,搜索程序中用到的文件。
Reader reader =new InputStreamReader(
getClass().getResourceAsStream("/image/Environment.ini"));
ImageIcon i=new ImageIcon(getClass().getResource("/image/b1.gif"));
以上两行代码采用了下面两条Java语句:
getClass().getResourceAsStream("FileName");
getClass().getResource("File");
含有这种代码的程序在运行时,以类(类路径)为基准,而不依赖当前路径(System中的user.dir)。
注意:上面的路径"/image/Environment.ini"如果写成"image/Environment.ini",将表示在类同路径下的路径 (className/image/Environment.ini),这需要您必须将图片和文本等文件的保存路径,和程序中指定的路径两者保持一致。本回答被网友采纳
第3个回答  2017-12-15
图片不能打到包里。

java项目打包成jar不能访问图片问题
一、通过使用外部资源文件的方式解决 把项目打包生成Jar后,再新建一文件夹,把项目中所有使用的图片文件和生成Jar文件放在该目录下,只要代码对图片文件的引用路径正确,如:ImageIcon image=new ImageIcon(SwingResourceManager.getImage("imagefilePath"));就可以了。这种方式下,图片文件与类文件不是一块放...

java文件打包后为什么显示不出图片
图片不要打包进jar里面,因为jar 包里的资源需要用文件流的方式读取出来。文件:InputStream ins = this.getClass().getResourceAsStream(path);图片:InputStream ins = this.getClass().getResourceAsStream(path);ImageInputStream imageIns = ImageIO.createImageInputStream(ins);BufferedImage imag...

编写的JAVA通讯录导出成JAR文件后背景图片不见了,且数据库连不上了...
你的图片不见了,且数据库连不上了,都是你没有写正确你的jar里访问这些文件的路径,虽然在开发环境里面,你能正确访问这些文件,但是到了手机里,你要改的.手机里都有指定的地方放文件的.在运行你的JAR文件时,你应该在路径里写相对路径,会更好,不论你把JAR放在哪,都可以访问.具体位置放在JAR的哪个地...

下面程序中引用的图片为什么打成jar包就不能用了呢?图片放在工程中了...
把图片放到和src文件夹平级的文件夹里试试 或者输绝对路径(注意双斜线)

用swing写的客户端打成jar包后桌面不显示ui
1. 代码逻辑问题:在打包时可能会出现路径引用问题,导致程序无法找到UI界面所在的路径,从而无法显示UI。2. JAR包打包方式问题:在打包时可能没有正确地将UI界面打包到JAR包中,从而导致客户端无法找到UI界面。3. Java版本问题:在打包时,使用的Java版本可能与开发时使用的版本不同,导致部分功能无法...

为什么我将java编写的程序打包成jar文件后显示的不是java的图标那种,而 ...
当java打包成jar文件后,它只能以压缩文件的形式打开,它内面存放的是你的程序,别的不能打开!

eclipse中jar包的图标显示不了
我刚刚本地测试了一下,调整文件夹中的jar的默认打开程序可以影响到eclipse 显示的文件格式。调整本地jar的打开程序即可变更显示样式。右击本地问价夹jar文件,选打开方式,选中默认程序选择 java...即可

java swing 生成jar包后的问题
很有可能是开发的某些包没有打到jar包里。在打jar 包的时候注意资源的勾选。删除jar包,必须是程序停止运行才可以的。这毫无疑问的。所以,你的关闭方法有问题。要点击关闭按钮的时候,退出整个程序才可以。

java打成jar包的问题?
jar 是打包命令;cfm 是参数; Notepad.jar 是打完包后的文件名;MANIFEST.MF 是个文件(自己写)写的内容是:Manifest-Version: 1.0Created-By: 1.5.0_03 (Sun Microsystems Inc.) (jre版本)Main-Class: NotepadStart (主类) 追问: cfm是什么参数呀,你看懂我的意思了么?我知道这样打,...

java 打包成jar文件问题
java项目打包成jar没问题,参考其他回答者给的命令,我就不copy了。但是你又说用到sql2005,这个不能直接打包到jar里的,需要目标机器(就是你要发布的机器)上也有sql2005环境。没有的话你要提供一个sql2005的安装文件。数据库这块的发布主要是你把你做的系统要用到的数据库的建表语句(DDL)整理...

相似回答