Can';无法找到bundle java.util的资源
我有两个属性文件: config-app.properties config-dev.properties 我试着从第一个巫婆那里读到第二个巫婆也是这样读的: java代码: 配置应用程序属性 config-dev.properties 但我有一个信息:Can';无法找到bundle java.util的资源,java,jakarta-ee,Java,Jakarta Ee,我有两个属性文件: config-app.properties config-dev.properties 我试着从第一个巫婆那里读到第二个巫婆也是这样读的: java代码: 配置应用程序属性 config-dev.properties 但我有一个信息: Can't find resource for bundle java.util.PropertyResourceBundle 编辑:代码格式。假设类路径(在根目录中)中存在config app.properties,则这应该可以工作。您不应
Can't find resource for bundle java.util.PropertyResourceBundle
编辑:代码格式。假设类路径(在根目录中)中存在
config app.properties
,则这应该可以工作。您不应该出现错误“找不到捆绑包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.properties
或which.properties
中覆盖这些设置。在这种情况下,keep必须相同
config-app.properties:
smtp.host.name =localhost
smtp.host.name =smtp.gmail.com
config-dev.properties:
smtp.host.name =localhost
smtp.host.name =smtp.gmail.com
最后一点注意,前面的代码是从文件系统加载文件,如果类路径中有这些文件,请使用以下代码:
defaultProperties.load(Classname.class.getClassLoader().getResourceAsStream("config-app.properties"));
我发现我必须删除这样的文字:smtp.host.name.env=smtpgmailcom,但这对我的工作不好:(我知道这一点,但为什么当我删除该点时它会工作(smtp.host.name.env=smtpgmailcom)这应该没什么区别。如果你能发布一个简单完整的例子,也许我们可以看到发生了什么。我在你的回答之后在我的答案中做了这个例子
defaultProperties.load(Classname.class.getClassLoader().getResourceAsStream("config-app.properties"));