当前位置: 首页 > 面试题库 >

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

贺博厚
2023-03-14
问题内容

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

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

任何帮助是极大的赞赏。

标记

更新1:

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

  1. 我通过右键单击 _Project- > Import-> General / File System_作为导入源来导入图像。
  2. 选择包含要导入图像的文件夹
  3. Project/src/Viking/Test/Resources“进入文件夹” 参数选择了“ ”
  4. 没有更改任何选项,然后单击 “完成”

在源文件中,我添加了以下代码以将图片插入JLabelLblLogo

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");

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

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



 类似资料:
  • 声音资源就是简单的音频文件。 引擎通过各个平台提供的基础接口,播放不同的声音资源来实现游戏内的背景音乐和音效。 关于声音的加载模式 在资源管理器内选中一个 audio,属性检查器内会有加载模式的选项。这个选项只对 Web 平台有效 Web Audio 通过 Web Audio 方式加载的声音资源,在引擎内是以一个 buffer 的形式缓存的。 这种方式的优点是兼容性好,问题比较少。缺点是占用的内存

  • 声音资源就是音频文件 对于声音系统来说,其接口主要面向两种需求:长度较长的音乐,长度短的音效。 但对于声音资源来说,两者并没有区别,所有的音频资源在导入编辑器之后,AudioClip 资源通过 AudioSource 声音系统组件来进行相关的音频操作。关于声音系统的使用,请参考: 声音系统 支持的声音资源的格式 目前引擎的音频系统已经能够支持 web 原生支持的格式: .ogg .mp3 .wav

  • 嵌入资源 嵌入资源即内容嵌入,可以为工程师提供诸如图片base64嵌入到css、js里,前端模板编译到js文件中,将js、css、html拆分成几个文件最后合并到一起的能力。有了这项能力,可以有效的减少http请求数,提升工程的可维护性。 fis不建议用户使用内容嵌入能力作为组件化拆分的手段,因为声明依赖能力会更适合组件化开发。 在html中嵌入资源 在html中可以嵌入其他文件内容或者base6

  • 问题内容: 不确定是否已经在SO上回答了这个基本问题。 从参考文献以及在SO上找到的答案,我了解到在Eclipse中 ,“源文件夹”是JDT用来搜索源文件并进行 编译的文件夹。 还提到了每个源文件夹都可以有一个副本来 存储编译的类。也许这就是为什么将 项目通常的“ src”文件夹的内容编译为“ bin”文件夹的原因( 在Eclipse中使用此类src / bin项目选项时)。 问题:哪里可以存储其

  • 我的 Apache FOP 应用程序有问题。 一切正常,直到我开始将外部文件(xsl、ttf、…)从外部工作目录打包到应用程序的jar文件中。从那以后,不再加载图像,我收到以下错误: 在 xsl 文件中,图像嵌入了: 当我将文件打包到jar中时,为什么图像不再工作?图像作为base64字符串嵌入到xsl文件中,因此图像数据必须可用... 谢谢:) 编辑1我正在用以下内容设置FopFactory基本

  • 图像资源又经常被称作贴图、图片,是游戏中绝大部分图像渲染的数据源。图像资源一般由图像处理软件(比如 Photoshop,Windows 上自带的画图)制作而成并输出成 Cocos Creator 3D可以使用的文件格式,目前包括 JPG 和 PNG 两种。 导入图像资源 使用默认的资源导入方式就可以将图像资源导入到项目中,之后我们就可以在 资源管理器 中看到如下图所示的图像资源。 图像资源的类型