获取资源路径会创建奇怪的路径(在jar工作中)

时间:2013-08-07 09:30:12

标签: java jar resources jnlp

我有一些奇怪的问题。我可以访问我的资源文件:

File xmlFile = new File(getClass().getResource(xmlPath).getPath());

其中xmlPath是“/ META-INF/file.xml”。

当我从Eclipse运行时,一切正常。不幸的是,当我将所有内容打包到jnlp文件时,使用我的web应用程序上传到tomcat(从我下载所有jar的jnlp)它就会停止工作。

当我运行我的jnlp时,它会像它应该的那样下载所有jar,并且无法启动。抛出这个例外:

java.io.FileNotFoundException: C:\Users\A050868\Desktop\http:\address:port\webapp\downloads\lib\package.jar!\META-INF\componentContext.xml (The filename, directory name, or volume label syntax is incorrect)

如何在缓存的区域设置jar副本中访问我的文件,该文件位于resources / META-INF文件夹中?现在看来,就像Java尝试访问服务器端的jar一样 - 没有这个本地,由jnlp下载。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

packed文件中的所有文件都是jnlp。移植包时,它们不会作为文件系统上的单个文件存在。

尽管如此,它们可以在classpath上找到。您可以使用相应的content

访问包裹的classloader
getClass().getClassLoader().getResourceAsStream(...)

This可以帮助您