在我的源代码:ClassLoader的虚拟机
private Image getImage(String path, ClassLoader loader) {
InputStream image = null;
try {
image = loader.getResourceAsStream(path);
return new Image(PlatformUI.getWorkbench().getDisplay(), image);
} finally {
if (image != null) {
try {
image.close();
}
catch (IOException e) {
//OK
}
}
}
}
在我的电脑这个代码工作完美。但是,在虚拟机行上:
loader.getResourceAsStream(path);
始终返回空值。为什么?
编辑:
路径是一个相对路径。例如:icons/tools/device.png。 我开发的应用程序包含十多个项目。我使用Eclipse IDE。所有的项目都有结构:
- com.pkg.name - 文件夹图标类
- 带图标和其他文件的文件夹
Jar文件有这样的结构了。
在我的电脑上应用程序工作完美。在虚拟机(Windows Server(64位))上,应用程序无法从Jar文件加载图像。
您能否澄清一下,您在谈论什么虚拟机?我虽然乍一看JVM,但这可能是一个错误的假设。 – 2010-01-27 10:11:37
当然。虚拟机意味着 - 一个64位的Windows服务器。 http://en.wikipedia.org/wiki/Virtual_machine。 – 2010-01-27 10:22:00
另一个问题 - 是标准的Java应用程序,OSGI甚至RCP的基础?如果是OSGi或RCP,则可以通过仔细检查清单及其导出/导入部分来解决问题。 – 2010-01-27 12:35:49