我搜索了一种在java项目中嵌入资源的方法(使用Eclipse v3.6.0),然后在控件中使用该嵌入式资源(例如JLabel
)。我见过从文件系统引用资源的方法。项目开发完成后,我想将该应用程序发布为可执行文件。应该注意的是,这些可执行文件将被部署/启动到Windows,* NIX和Linux平台。
我知道这可以在Visual Studio世界中完成,但我不熟悉如何在Java / Eclipse IDE中执行此操作。作为一个附带问题,如何让Eclipse将项目创建为可执行文件以便可以启动它?
非常感谢任何帮助。
标记
更新1:
基于BalusC's response,我想分享我解决问题的代码。我的课程在“Viking.Test
”包下,然后我将图片文件放在“Viking.Test.Resources
”包下。这都是在Eclipse中完成的,用于将图像导入到项目中。
Project/src/Viking/Test/Resources
”
在源文件中,我添加了以下代码,将图片插入JLabel
(LblLogo
)
try
{
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream(
"Viking/Test/Resources/MyImage.jpg");
Image logo = ImageIO.read(input);
LblLogo = new JLabel( new ImageIcon( logo ) );
LblLogo.setBounds(20, 11, 210, 93);
getContentPane().add(LblLogo);
}
catch ( IOException e ) { }
答案 0 :(得分:17)
只需将这些资源放在源/包结构中,然后使用ClassLoader#getResource()
或getResourceAsStream()
通过完全限定的包路径从类路径中获取它们URL
或InputStream
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("/image.gif");
// ...
或者,如果它与当前类位于同一个包中,您也可以按如下方式获取它:
InputStream input = getClass().getResourceAsStream("image.gif");
作为一个附带问题,我如何让Eclipse将项目创建为可执行文件,以便可以启动它。
右键单击Java项目>出口>可运行的JAR文件。