在命令行上运行时找不到Java Propertie File

时间:2018-03-05 22:27:27

标签: java properties classpath inputstream properties-file

在我的程序中,当我转到dist文件夹并使用以下命令运行Project.jar时,在NetBeans上编写的Java8应用程序库:

java -jar Project.jar

我收到以下错误:

Sorry, unable to find config.properties
Exception in thread "main" java.lang.NullPointerException

似乎无法创建读取属性文件所需的输入流。

这是我用来读取属性的类:

public class PropertyAccess {

    public static String getPropertyFromFile(String propertyName){
        String ret = "";
        //System.out.println(propertyName);
        InputStream input = null;
        Properties prop  = new Properties();

        try {
            String filename = "config.properties";
            input = PropertyAccess.class.getResourceAsStream(filename);
            if(input == null) {
                    System.out.println("Sorry, unable to find " + filename);
            }

            //input = PropertyAccess.class.getResourceAsStream("/config/config.properties");
            //input = new FileInputStream("config/config.properties");

            input = PropertyAccess.class.getClassLoader().getResourceAsStream("config/config.properties");

            prop.load(input);
            ret =  prop.getProperty(propertyName);
        } catch (IOException ex) {
            ex.printStackTrace();
        } finally {
            if (input != null) {
                try {
                    input.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

        return ret;
    }
}

每次我需要从文件中读取属性时都会加载prop文件,这是一个糟糕的设计/实现,这将在主要版本之前得到纠正,但这不是导致问题的原因。

有人可以解释如何解决这个问题吗?

我尝试将文件添加到类路径中,但它也无法正常工作。

0 个答案:

没有答案