私は以下に示すような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:\ tests \ code \ src \ com \ abc \ myproject \ test.javaにあり、mybundle.propertiesはC:\ tests\codeフォルダーにあります。
mybundle.propertiesには次の1行が含まれています。
name=Mike
以下に示すようにコマンドプロンプトからプログラムを実行すると、完全に正常に実行されます。
C:\testing\code\src>java -cp .;c:\testing\code com.abc.myproject.test
propertyValue=Mike
ここで、test.classのみを含むJarファイルxyz.jarを作成し、このJarをC:\testsディレクトリに保持しました。jarのマニフェストには以下が含まれます。
Manifest-Version: 1.0
Created-By: 1.7.0_05 (Oracle Corporation)
Main-Class: com.abc.myproject.test
同じディレクトリC:\ testsで、mybundle.propertiesを保持してから、以下のコマンドでjarを実行しようとしました。
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)
Jarを再デプロイしなくてもこのファイルに変更を加えることができるはずなので、mybundle.propertiesをJarの外に置いておく必要があります。
誰かがこの問題を修正するのを手伝ってくれますか?
ありがとう!