我正在开发一个java swing应用程序,它工作正常,但在构建我的应用程序后,当我运行jar文件时,我的应用程序无法正常工作。所以要知道我使用这个测试的问题是什么:
FileReader reader;
Properties props;
try{
reader = new FileReader("src\\inputs.properties");
props = new Properties();
props.load(reader2);
JOptionPane.showMessageDialog(null,reader.getClass());
}catch(Exception e){
JOptionPane.showMessageDialog(null,e.getMessage());
}
所以当我运行应用程序时,它工作正常,我收到此消息: message before building the app
这意味着我的属性文件已加载。
但是当我构建应用程序时,当我运行它时,我收到了这条消息:
message after building the app
我的问题是如何在构建may app后使我的属性文件有效?
我正在使用netbeans,这是我的项目结构:
-source Package
- 默认包
- inputs.properties
--myapppackage
--myapppackage.java
提前感谢。
答案 0 :(得分:1)
尝试使用它来加载属性文件:
File file = new File("inputs.properties);//use the right path
FileInputStream fileInput = new FileInputStream(file);
Properties properties = new Properties();
properties.load(fileInput);
fileInput.close();
答案 1 :(得分:1)
请创建一个文件夹" config"在您的项目中并将inputs.properties放入其中。
reader = new FileReader("config/inputs.properties");
有关详细信息,您还可以浏览此主题: Netbeans FileReader FileNotFound Exception when the file is in folder?
或者: 当您的资源在JAR文件中时,它不再是文件。文件只是文件系统上的物理文件。解决方案:使用getResourceAsStream。像这样:
try {
Properties props;
Property p=new Property();
InputStreamReader in=new InputStreamReader(p.getClass().getResourceAsStream("/config/" + "inputs.properties"));
props = new Properties();
props.load(in);
JOptionPane.showMessageDialog(null, in.getClass());
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e.getMessage());
}