java - 引用 JAR 内的文件

标签 java eclipse file jar structure

我正在创建一个用于某些串行端口通信的 Java 应用程序,在该应用程序的文件夹中,我有两个需要在运行时提供的资源。第一个是用作启动屏幕的图像,另一个是需要在程序启动时读取的配置文件。

这是 Linux 中“tree”命令输出的删节版本,我需要引用的两个文件是“commandSet.config”和“splash-screen2.png”

.
├── bin
│   ├──...
├── commandSet.config
├── app-manifest.txt
├── splash-screen2.png
└── src
    ├── events
    │   └── InterfaceEvents.java
    ├── models
    │   ├── Command.java
    │   └── Phone.java
    ├── operations
    │   ├── Application.java
    │   ├── ...
    └── views
        ├── CallDialog.java
        ├── SplashScreen.java
        └── Window.java

我目前在以下几行中引用:

BufferedReader in = new BufferedReader(new FileReader("commandSet.config"));

JLabel image = new JLabel(new ImageIcon("splash-screen2.png"));

当我从 Eclipse 运行它时,它工作得很好,但是一旦我导出到可运行的 JAR,文件就不会移动,因此不会被正确引用。我尝试将它们移动到“src”文件夹中,这导致它们被存档在 JAR 中,但我仍然无法引用它们。

我对导出 Java 项目的概念还很陌生,所以也许我错过了一些明显的东西。如果有人可以向我展示执行此操作的最佳方法以及 future 项目文件系统的最佳方法,我将非常感激。干杯!

最佳答案

 InputStream in = this.getClass().getClassLoader().getResourceAsStream("splash-screen2.png");  
byte[] buffer = new byte[in.available()];
in.read(buffer);  
ImageIcon icon = new ImageIcon(buffer);

关于java - 引用 JAR 内的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11503885/

相关文章:

java - 如何提取包含/的字符串中的第一个子字符串?

java - Linux 上 C 与 Java 的接口(interface)

java - 返回具有特定属性 JDOM 的元素

java - Git 中的 Eclipse Java 项目

java - 单击按钮外部区域时激活按钮(Java/Blackberry 应用程序)

Java Eclipse Maven 无法使用 jdk 找到或加载主类

java - 从 IResource 获取本地文件系统上的绝对路径

java - 将值写入具有公式的 Excel 文件时出现延迟

android - iOS - 访问应用程序创建的文件和文件夹

c++ - 如何在 VC++ 2010 中使用 .dll 文件启动进程