【问题标题】:Getting reources path creates weird path (in jar works)获取资源路径会创建奇怪的路径(在 jar 中)
【发布时间】:2013-08-07 09:30:12
【问题描述】:

我遇到了一些奇怪的问题。我可以像这样访问我的资源文件:

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

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

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

当我运行我的 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 副本中的资源/META-INF 文件夹中的文件?现在看来,像 Java 一样尝试访问服务器端的 jar - 没有这个本地,由 jnlp 下载。

有什么想法吗?

【问题讨论】:

  • 你想做什么?您不能将不透明路径视为法线路径。
  • 我想为jnlp下载的客户端修改一些配置路径。最后我下载它们,保存在客户端驱动器上,然后以我想要的方式编辑它们。

标签: java jar resources jnlp


【解决方案1】:

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

也就是说,它们可以在classpath 上找到。您可以使用适当的classloader 访问您的包的content

getClass().getClassLoader().getResourceAsStream(...)

This 可以帮到你

【讨论】:

  • 是的,这正是我经过几个小时的搜索后得出的结论。最后我下载了这个文件的内容,保存在客户端的硬盘上然后使用它们。没有最好的解决方案,但有效:)
猜你喜欢
  • 2020-12-09
  • 2012-05-13
  • 1970-01-01
  • 2010-12-26
  • 1970-01-01
  • 1970-01-01
  • 2019-11-27
  • 2011-09-12
  • 2010-10-30
相关资源
最近更新 更多