如何在Eclipse上导出带有图像的jar?

iLo*_*veC 3 java eclipse jar image embedded-resource

我创造了一种国际象棋游戏(它不完全是国际象棋,但我不知道它是如何用英语调用的)我希望将它导出为runnable jar.

问题是图像(在这个程序 - 玩家)不会出于某种奇怪的原因导出.

如何用图像导出eclipse上的runnable jar?谢谢.

Mar*_*nik 5

建议的方法是resource在项目根目录下有一个目录,并将其包含在源代码目录列表中.这将导致所有图像被复制到JAR中.如果你在那里创建一个子目录resource/image,那么你最终会得到一个有image目录的JAR .您可以通过类加载器访问这些图像:

classloader.getResourceAsStream("/image/name.jpg");
Run Code Online (Sandbox Code Playgroud)

或者,每当您将图像传递给接受资源URL的API时:

classloader.getResource("/image/name.jpg");
Run Code Online (Sandbox Code Playgroud)

当然,这完全取决于你如何构建你的JAR,但是如果你通过Eclipse的Export JAR来实现它,你将能够实现我所描述的.如果您使用Maven,那么我所描述的方法非常类似.

另请注意,我故意避免演示获取类加载器的代码,因为这是Java中的一个非平凡主题,应该以特定于上下文的方式完成.但是,如果您从与图像位于同一JAR的类中执行此操作,则可以安全地使用实例方法:

this.getClass().getClassLoader();
Run Code Online (Sandbox Code Playgroud)

this在这里是可选的,实际上不建议从代码风格的角度来看,但为了清楚起见我将它包括在内,因为调用getClass除你自己以外的任何类的实例是错误和危险的.