我在尝试将资源加载到我的应用程序的包中时遇到了严重的问题。我已经在这几个小时了,我真的不知道我做错了什么。
我有一个 Java 应用程序,我正在尝试将国际化应用于我的日志记录。在 Eclipse 中一切正常,只有当我尝试将已编译的 jar 部署到无法找到属性文件的测试环境时。我的属性文件称为 logging_en.properties。我已经验证它在文件系统上(顺便说一句,Linux)。当我启动我的应用程序时,我执行以下命令:
$JAVA_HOME/bin/java -verbose:gc -Xloggc:/var/tmp/app_gc.log -Xms1000m -Xms1000m -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:NewRatio=3 -classpath $CLASSPATH -Djava.rmi.server.codebase=file:///data/dev/app/common/ext/dirmi-1.1.1.jar -Djava.awt.headless=true -Dcom.sun.management.jmxremote.port=xxx -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false $JAVA_SECURITY $IMPORT_PROPERTIES $APP_PROPERTIES app.serverimpl.ServerStarter
我的 CLASSPATH 变量是:
/data/dev/app/server/logging_en.properties:/data/dev/app/common/lib/common.jar:/data/dev/app/common/ext/dirmi-1.1.1.jar:/data/dev/app/common/ext/log4j-1.2.17.jar:/data/dev/app/common/ext/cojen-2.2.3.jar:/data/dev/app/common/lib/server.jar
属性文件在我的类路径中。在代码本身中,我运行的确切行是:
LogManager.getLogger("server").setResourceBundle(java.util.ResourceBundle.getBundle("logging"));
在服务器启动的一开始,我总是得到 Missing Resource 异常:
Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name logging, locale en_US
为了安全起见,我已经将文件复制到 logging.properties 和 logging_en_US.properties 并将所有三个添加到我的类路径中。还是同样的问题。我知道我在做一些愚蠢的事情或遗漏了一些明显的事情,但我真的很茫然。我不希望将文件捆绑到我的 jar 中,以便可以即时修改它,所以我希望可以从类路径中执行此操作。