如何在构建java应用程序后使属性文件可用

时间:2016-01-01 14:20:22

标签: java swing properties-file

我正在开发一个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

提前感谢。

2 个答案:

答案 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());
    }