gpt4 book ai didi

java - 将资源(图像、声音位等)嵌入到 Java 项目中,然后使用这些资源

转载 作者:IT老高 更新时间:2023-10-28 21:09:09 26 4
gpt4 key购买 nike

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

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

非常感谢任何帮助。

标记

更新 1:

基于 BalusC's response ,我想分享我必须解决我的问题的代码。我的类(class)在“Viking.Test”包下,然后我将图像文件放在“Viking.Test.Resources”包下。这一切都在 Eclipse 中完成,以将图像导入到项目中。

  1. 我通过右键单击导入源的 Project -> Import -> General/File System 来导入图像。
  2. 选择包含要导入的图像的文件夹
  3. 'Into folder' 参数选择了“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 ) { }

最佳答案

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

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

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

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

As a side question, how do I get Eclipse to create the project as a executable so it can be launched.

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

关于java - 将资源(图像、声音位等)嵌入到 Java 项目中,然后使用这些资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3721706/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com