我想用一个相对路径,这样jar 程序在别的机器上运行的时候,我就不必建文件夹E:\Sim\src\sim\general。双击鼠标即可正常运行我的程序,并显示工具条上的图标。
----------------解决方案--------------------------------------------------------
你在干什么 ???
----------------解决方案--------------------------------------------------------
楼主的想法很好,不过我一直没有实现,如果你实现了不妨告诉大家一声呀
----------------解决方案--------------------------------------------------------
你在制作JAR文件的时候可以将这些图标一起打包,这样就可以不用在移植的时候都要设置路径那么麻烦了
----------------解决方案--------------------------------------------------------
一个很简单的方法
你得到你图片路径时,不要用绝对路径,而是把它和你的class文件放在一个目录下
然后就可以利用
Image im=Toolkit.getDefaultToolkit().createImage(this.getClass().getResource("xxx.jpg"));
然后记得把im读入内存
----------------解决方案--------------------------------------------------------
如果单纯用相对路径是不行的,因为在工程中,源文件与.class文件以及最后的项目生成文件.jar分别在不同的目录下面。
我在sun公司论坛(http://forum.java.sun.com/thread.jspa?threadID=778899&tstart=0)上查到了一中方法
private static ImageIcon newIcon=new ImageIcon(MyJFrame.class.getResource("New.gif"), "New");
但是我实现的时候出现了错误。
他给我的那中方法是可取的。我不知道错误出现在哪儿?
----------------解决方案--------------------------------------------------------
用相对路径是肯定可以的,你可以去试玩一下我的那个程序,它里面的图片就是打包在JAR文件里,我用netbeans的时候就是把它放到class文件一个目录下
这个JAR文件到哪都能运行
----------------解决方案--------------------------------------------------------
请问把图标放到源文件所在的目录下,就行吗?
[此贴子已经被作者于2006-10-22 14:46:32编辑过]
----------------解决方案--------------------------------------------------------
请问把图标放到源文件所在的目录下,就行吗?
错,放到class文件下
----------------解决方案--------------------------------------------------------
我找到了一个文件夹叫做classes是这个吗?
然后在下面有个文件夹,就是我的包名,
这是我运行是的错误提示
Uncaught error fetching image:
java.lang.NullPointerException
at sun.awt.image.URLImageSource.getConnection(URLImageSource.java:97)
at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:106)
at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:240)
at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:172)
at sun.awt.image.ImageFetcher.run(ImageFetcher.java:136)
----------------解决方案--------------------------------------------------------