执行jar说"系统找不到指定的属性文件"

时间:2017-12-21 10:03:18

标签: java jar properties-file

我有一个gradle项目, src / main / resources 文件夹中包含 app.properties 文件。

当我尝试使用jar执行项目时,它表示无法读取指定的app.properties文件。

以下是读取属性文件的代码:

  Properties properties = new Properties();  
  File file = new File("src/main/resources/app.properties");
  FileInputStream inputStream = new FileInputStream(file);
  properties.load(inputStream);

我使用下面的命令来运行jar:

Java -jar App.jar

对此问题的任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

尝试使用getSystemResourceAsStream

 try (InputStream inputStream = ClassLoader.getSystemResourceAsStream("app.properties"))

答案 1 :(得分:0)

最有可能的是,当您创建该项目jar时,运行文件的目标将被更改。我的英语不好,我知道,但我可以建议你:

制作:

File file = new File("app.properties");

请确保,App.jar和app.properties位于同一文件夹中。

祝你有个美好的一天:)

另一种解决方案,

FileReader fileReader = new FileReader("app.properties");
 BufferedReader bufferedReader = new BufferedReader(fileReader);
 while((line = bufferedReader.readLine()) != null) {
        if(line.contains(/* WHAT YOU WANT*/)){
               // DO THE PROCESS    
         }  
  }

 bufferedReader.close();

您也可以尝试这样做。

答案 2 :(得分:0)

对于仍然面临此问题的人:

public static void main(String[]  args){  
        InputStream is=MainMethod.class.getClassLoader().getResourceAsStream("xy.xml");
        Properties properties = new Properties();
        properties.loadFromXML(is);
        //xy.properties or xy.xml
        String somedata = properties.getProperty("somedata");
    }

xy.xml应该与jar一起打包。它在Windows和lynux服务器中都对我有效。这也适用于普通的Java程序。