0

在码头上的 JAX-RS 应用程序中加载配置文件时,我遇到了一个疯狂的错误。

public class Configuration {
    public static final Properties config = new Properties();

    static {
        config.clear();

        try (InputStream inputStream = Configuration.class.getClassLoader().getResourceAsStream("config.properties")) {
            config.load(inputStream);
        } catch (Exception ex) {
            Logger.error(ex);
        }
    }
}

如果我放入config.properties默认包,它工作正常。但是当我加载它时,对象java -cp config.properties中没有任何内容。config我已经检查了这些方法,但它不起作用。

ClassLoader.getSystemClassLoader().getResourceAsStream("config.properties");
ClassLoader.getSystemClassLoader().getResourceAsStream("/config.properties");
Configuration.class.getClassLoader().getResourceAsStream("config.properties");
Configuration.class.getClassLoader().getResourceAsStream("/config.properties");

奇怪的是,我在项目中使用 Tinylog 作为 Logger,而 TinyLog 加载其配置文件tinylog.properties的方式相同:

/* I found this from Tinylog source code */
Configurator.class.getClassLoader().getResourceAsStream("tinylog.properties");

我正在通过java -cp tinylog.properties. 我的代码有什么问题吗?

4

1 回答 1

0

-cp选项采用目录和 jar 文件列表。它不需要属性文件。您需要将包含该文件的目录放在类路径中。config.properties

于 2014-08-17T11:37:03.163 回答