我正在为某些串行端口通信创建Java应用程序,并且在应用程序的文件夹中有两个资源需要在运行时存在。第一种是用作启动画面的图像,另一种是在程序启动时需要读取的配置文件。在JAR中引用文件
下面是从Linux中的“树”命令输出的一个删节的版本,这两个文件,我需要被引用为“commandSet.config”和“飞溅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"));
该W当我从Eclipse运行它时运行得很好,但是一旦我导出到可运行JAR文件就不会被移动,因此没有被正确地引用。我试图将它们移动到“src”文件夹中,导致它们被存档在JAR中,但我仍然无法引用它们。
我对导出Java项目的概念很陌生,所以也许我错过了一些明显的东西。如果有人能够告诉我做到这一点的最佳方式以及未来项目文件系统的最佳方法,我将非常感激。干杯!
好的,应该在哪里存储文件以便以这种方式引用它们? – 2012-07-16 12:13:50
当然,在部署应用程序的JAR或WAR中。由于类加载器在CLASSPATH中查找,因此您需要将它们放在CLASSPATH中。在你的JAR中,这是在清单类路径中。在WAR中,这是WEB-INF/classes文件夹 – duffymo 2012-07-16 12:24:11
好的,仅供参考,我只使用JAR。我不完全确定你的意思,“你需要他们在CLASSPATH”?我有一个清单文件,其中包含以下内容: Main-Class:operations.Application – 2012-07-16 13:39:51