gpt4 book ai didi

java - 找不到 bundle java.util 的资源

转载 作者:搜寻专家 更新时间:2023-11-01 03:22:37 24 4
gpt4 key购买 nike

我有两个属性文件:

config-app.properties

config-dev.properties

我试着从第一个女巫那里读到第二个女巫:

Java 代码:

String smtpHostName = ResourceBundle.getBundle("config-app").getString("smtp.host.name");

config-app.properties

smtp.host.name  =${smtp.host.name.env}

config-dev.properties

smtp.host.name.env  =smtp.gmail.com

但我有消息:

Can't find resource for bundle java.util.PropertyResourceBundle

编辑:代码格式化。

最佳答案

这应该有效,假设 config-app.properties 存在于类路径(在根目录中)。您不应收到错误“无法找到 bundle java.util.PropertyResourceBundle 的资源”。

但是,您尝试通过替换 ${smtp.host.name.env} 来执行的操作将不适用于 ResourceBundle。你需要另一个库来做更复杂的事情。

已更新

不清楚您要做什么,但假设您想要开发配置文件和生产配置文件,您可以尝试做这样的事情:

Properties defaultProperties = new Properties();
defaultProperties.load(new FileInputStream("config-app.properties"));

Properties properties = new Properties(defaultProperties);
if (isDev()) {
properties.load(new FileInputStream("config-dev.properties"));
} else {
properties.load(new FileInputStream("whatever.properties"));
}

properties.getProperty("smtp.host.name");

这将在 config-app.properties 中有默认设置,可以在 config-dev.propertieswhatever.properties 中覆盖如所须。在这种情况下,保留必须相同。

配置应用程序属性:

smtp.host.name =localhost

config-dev.properties:

smtp.host.name =smtp.gmail.com

最后一点,前面的代码是从文件系统加载文件,如果你在类路径中有它们,使用类似的东西:

defaultProperties.load(Classname.class.getClassLoader().getResourceAsStream("config-app.properties"));

关于java - 找不到 bundle java.util 的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25853512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com