29

我已经搜索了一种在 java 项目中嵌入资源的方法(使用 Eclipse v3.6.0),然后在控件中使用该嵌入资源(例如,JLabel)。我见过从文件系统中引用资源的方法。项目开发完成后,我想将应用程序发布为可执行文件。应该注意的是,这些可执行文件将部署/启动到 Windows、*NIX 和 Linux 平台。

我知道这可以在 Visual Studio 世界中完成,但我非常不熟悉如何在 Java/Eclipse IDE 中做到这一点。作为一个附带问题,我如何让 Eclipse 将项目创建为可执行文件以便可以启动它?

任何帮助是极大的赞赏。

标记

更新 1:

根据BalusC 的回复,我想分享我必须解决我的问题的代码。我的课程在“ Viking.Test”包下,然后我将图像文件放在“ Viking.Test.Resources”包下。这一切都在 Eclipse 中完成,以将图像导入项目。

  1. 我通过右键单击导入源的项目 -> 导入 -> 常规/文件系统来导入图像。
  2. 选择包含要导入的图像的文件夹
  3. Project/src/Viking/Test/Resources“进入文件夹”参数选择了“ ”
  4. 没有更改任何选项并单击“完成”

在源文件中,我添加了以下代码以将图像插入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 ) {  }
4

1 回答 1

20

只需将这些资源放在源/包结构中,并通过完全限定的包路径使用或从类路径ClassLoader#getResource()getResourceAsStream()获取它们。URLInputStream

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream input = classLoader.getResourceAsStream("/image.gif");
// ...

或者如果和当前类在同一个包中,也可以通过如下方式获取:

InputStream input = getClass().getResourceAsStream("image.gif");

作为一个附带问题,我如何让 Eclipse 将项目创建为可执行文件以便可以启动它。

右键单击 Java 项目 > 导出 > 可运行的 JAR 文件

于 2010-09-15T20:57:57.227 回答