[size=medium]
用URL imageUrl = MyText.class.getResource("/res/notepad.png");Image image = toolkit.createImage(imageUrl); 将程序打包后,运行程序能正确显示图片。
但直接用Image image = toolkit.createImage("/res/notepad.png");将程序打包后,运行程序却不能显示图片。
为什么呢?
[/size]
[b]问题补充:[/b]
google上没找到答案。
抱歉fangfumin说的不是很明白。
就向你在地图上查房子一样,他只能告诉房子相对与它所在的城市的路径,而无法告诉你房子中你要找的那一间怎么走。
同样jar包是一个文件,java的Classpath的相对路径是在jar包的外面,他只能告诉你,你的jar包相对与硬盘的位置(例如:d:\某个文件夹下)。它无法知道这个jar包中装的是什么。所以Image image = toolkit.createImage("/res/notepad.png"); 无法找到文件。
而MyText.class.getResource("/res/notepad.png")是以jar包中MyText.class建立的相对路径(即jar包内的路径),所以它可以找到
这个你该问google.
URL imageUrl = MyText.class.getResource("/res/notepad.png");Image image = toolkit.createImage(imageUrl);
中URL的路径是相对与MyTest.class文件来说的,打包后因为MyText.class这个文件也在包中,所以路径不变。
Image image = toolkit.createImage("/res/notepad.png");
的路径也是相对的,当打包后压缩包是一个文件不是文件夹结构的所以会找不到