【问题标题】:How to package resources, that are accessed directly , into a jar file如何将直接访问的资源打包成jar文件
【发布时间】:2012-10-04 02:21:19
【问题描述】:

我最近在 Slick2D 中开发了一个游戏,我直接访问了我所有的图像,例如

Image i = new Image("address.png");

而不是使用将加载资源的类或使用输入流。

我想知道是否仍然可以将所有资源加载到 jar 中,我将 /res 文件夹添加到我的构建路径并使用 jarsplice 添加我的库和本机但是 jar 将无法运行,因为它找不到图片。

【问题讨论】:

标签: java jar resources runnable slick2d


【解决方案1】:
Image i = new Image("address.png");

正在查看您的应用程序正在运行的根文件系统。如果您想使用打包在 jarfile 中的资源,您必须这样做:

Image i = new Image(getClass().getResource("/res/address.png").toURI()); // In case your Image object accepts URI as parameters

编辑

Image i = new Image(getClass().getResource("/res/address.png").toExternalForm()); // Since your object only accept Strings

【讨论】:

  • Bruno,第二个选项会通用吗,即当您从已编译的类(例如 Eclipse 运行/调试)中运行应用程序以及从 jar 中运行它时?
  • 是的,肯定会的。顺便说一句,这是哪个 Image 对象?
  • 感谢您的回答,但是当我这样做时,我收到一个错误,此方法是否适用于 org.newdawn.slick.Image 版本的图像?
  • 谢谢我在出口方面有点菜鸟,这对我有很大帮助谢谢:)
  • 不要忘记将答案标记为正确。否则stackoverflow永远不会知道你的问题已经解决了。除此之外,您还可以通过接受答案来赢得声誉(回答的人也是如此)
猜你喜欢
  • 2021-03-05
  • 2011-01-24
  • 2012-02-21
  • 2013-09-23
  • 1970-01-01
  • 2019-06-18
  • 2012-04-26
  • 2013-07-20
相关资源
最近更新 更多