gpt4 book ai didi

java - ResourceBundle 抛出 MissingResourceException

转载 作者:行者123 更新时间:2023-12-01 10:14:08 24 4
gpt4 key购买 nike

enter image description here

我正在尝试从文件位置读取属性文件。但是,资源包无法找到该文件并引发以下异常

我尝试将该文件保留在类路径下,但未能成功读取该文件。但是,我的目的是从文件路径读取属性文件,这来自用户。因此,我的类可以读取不可知的文件输入来获取属性。

Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name configFileName, locale en_US
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1499)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1322)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:721)
at com.cisco.propertiesreader.FileConfigLoader.getBundle(FileConfigLoader.java:16)
at com.cisco.propertiesreader.MainApp.main(MainApp.java:10)

FileConfigLoader 类:

package com.cesna.propertiesreader;

import java.util.MissingResourceException;
import java.util.ResourceBundle;

import org.apache.log4j.Logger;

public class FileConfigLoader {

private static final Logger LOGGER = Logger.getLogger(FileConfigLoader.class);

private static String EMPTY = "";

public static ResourceBundle getBundle(String configLocation) {

ResourceBundle rb = ResourceBundle.getBundle("configFileName");

return rb;

}

public static String getValue(ResourceBundle rb, String key) {
String value = EMPTY;

try {
value = rb.getString(key);
} catch (MissingResourceException mREx) {
LOGGER.error("Missing Resource : " + key);
}

return value;
}

}

主应用程序类:

package com.cesna.propertiesreader;

import java.util.ResourceBundle;

public class MainApp {

public static void main(String[] args) {

ResourceBundle resource = FileConfigLoader
.getBundle("D:\\PDIWorkspace\\PropertyFileReader\\resoures\\config.properties");

String hive_db = FileConfigLoader.getValue(resource,"hive_db");

System.out.println(hive_db);
}

}

嗯,我的做法是正确的。

配置.属性

hive_db=installbase
EDGE_HIVE_CONN=dev-node
target_dir=/app/dev/SmartAnalytics/sqoop_temp/
IB_log_table=IB_log
SR_DG_master_table=data_usage_governance_master
SR_DG_table=data_usage_governance_log

使用以下方式读取文件后问题已解决:

package com.cesna.propertiesreader;

import java.util.ResourceBundle;

public class MainApp {

public static void main(String[] args) {

ResourceBundle resource = FileConfigLoader
.getBundle("com.cisco.propertiesreader.config");

String hive_db = FileConfigLoader.getValue(resource,"hive_db");

System.out.println(hive_db);
}

}

最佳答案

您确定要执行以下操作吗

public static ResourceBundle getBundle(String configLocation) {

ResourceBundle rb = ResourceBundle.getBundle("configFileName");

return rb;

}

我觉得应该是

public static ResourceBundle getBundle(String configLocation) {

ResourceBundle rb = ResourceBundle.getBundle(configLocation);

return rb;

}

如果你想从外部目录(不在类路径中)加载数据

public static ResourceBundle getBundle(String basePath, String baseName) throws MalformedURLException {
File file = new File(basePath);
URL[] urls = {file.toURI().toURL()};
ClassLoader loader = new URLClassLoader(urls);
ResourceBundle rb = ResourceBundle.getBundle(baseName, Locale.getDefault(), loader);
return rb;
}

关于java - ResourceBundle 抛出 MissingResourceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36008729/

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