我在java程序中导入了一张图片,但是导出为jar文件时无法显示,应该是相对路径的问题,请问怎么解决??

代码如下:
try { imagePath = System.getProperty("user.dir")+"/src/images/background.jpg" ;// resource = this.getClass().getResource("/background.jpg");// bgImage = ImageIO.read(resource); bgImage = ImageIO.read(new File(imagePath)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }

请问怎该啊??我用url试了下,但是在运行时根本无法显示。在下是个初学者,还请各位指点一下吧!!最好给个代码。

System.getProperty("user.dir")得到的应该是这种形式的
盘符:\... ...\工作空间\FiveChaessProject,
这样拼行不呢:
imagePath = System.getProperty("user.dir")+"\\src\\images\\background.jpg"追问

还是一样~~导出jar还是不显示

追答

刚才说的方法打成jar包确实有问题,我试了一下其它方法,终于解决了,上面打成jar包如果能成功执行并正确访问到图片,则会弹出图片宽度:

应该把image文件放在src下面,像我这里的test/src/image经过编译后,会产生test/bin/image,即把image文件放到bin文件夹下,通过getClass().getResource()访问,bin文件夹则是应用程序的根,则通过/image/来访问图片。

再弹出一个窗口来测试获取的路径:

在myeclipse中运行时第一句会弹出:

但打成jar之后放在桌面就不一样了,

注意,我的jar包名是getImage.jar,但在路径后还加了一个!号,至于这个的原因我就不知道了

追问

按你说的真是这样,先谢谢了。不过,还是无法显示。这是为什么呢??eclipse下运行显示挺正常的。把路径中的!都去了,还是不行呢??java安装没装好??

追答

只要你能访问到图片就不是路径的问题了,你要把图片显示在什么地方呢?不能显示可能在呈现图片方式上出了问题。

追问

用dos环境运行了下,显示有错误:

javax.imageio.IIOException:Can't read input file!

        at  javax.imageio.ImageIO.read<Unknown Source>

      

温馨提示:答案为网友推荐,仅供参考
相似回答