我有一个Java程序的外部资源,如下所示:无法定位罐
package com.abc.myproject;
import java.util.*;
class test {
public static void main(String[] args)
{
ResourceBundle rb = ResourceBundle.getBundle("mybundle");
String propertyValue = rb.getString("name");
System.out.println("propertyValue="+propertyValue);
}
}
我已经将该程序位于C:\测试\代码\ SRC \ COM \ ABC \ MyProject的\测试.java 而且,我已将mybundle.properties保存在C:\ testing \ code文件夹下。
mybundle.properties含有一个行:
name=Mike
当我运行从命令提示,如下所示的程序,它运行完全罚款:
C:\testing\code\src>java -cp .;c:\testing\code com.abc.myproject.test
propertyValue=Mike
现在,我创建Jar文件的xyz。 jar只包含test.class &保存在C:\ testing目录下的这个Jar & JAR包含的清单如下:
Manifest-Version: 1.0
Created-By: 1.7.0_05 (Oracle Corporation)
Main-Class: com.abc.myproject.test
在同一个目录C:\测试,我不停地mybundle.properties &然后试图逃跑罐子下面的命令:
java -cp .;c:\testing -jar xyz.jar
但它无法加载mybundle资源&抛出错误:
Exception in thread "main" java.util.MissingResourceException: Can't find bundle
for base name scheduler, locale en_US
at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
at java.util.ResourceBundle.getBundleImpl(Unknown Source)
at java.util.ResourceBundle.getBundle(Unknown Source)
at com.abc.myproject.test.main(test.java:8)
我必须将mybundle.properties保留在Jar的一边,因为我们应该能够对该文件进行更改,而无需重新部署Jar。
任何人都可以帮我解决这个问题吗?
谢谢!