以前の質問java-util-currency-getinstance-throwing-illegalargumentexceptionに続いて、 java.util.Currencyのソース コードを見ていました。
次のコード スニペットを見ました。
static {
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
String homeDir = System.getProperty("java.home");
try {
String dataFile = homeDir + File.separator +
"lib" + File.separator + "currency.data";
DataInputStream dis = new DataInputStream(
new BufferedInputStream(
new FileInputStream(dataFile)));
if (dis.readInt() != MAGIC_NUMBER) {
throw new InternalError("Currency data is possibly corrupted");
}
....
....
....
....
if (false) {
// look for the properties file for overrides
try {
File propFile = new File(homeDir + File.separator +
"lib" + File.separator +
"currency.properties");
//more code
}
内にそのようなファイルが見つからないため、currency.data
またはの場所について疑問に思っていました。currency.properties
C:\Program Files\Java\jre6\lib
rt.jar の下を見るとCurrencyData
、いくつかのエントリを定義したクラス が表示されますが、それが とどのように関連しているかはわかりませんjava.util.Currency
。
public static Currency getInstance(String currencyCode) {}
指定された通貨コードが ISO 4217 リストに含まれているかどうかを確認する方法を 調べていました。CurrencyData.properties
この情報を保存して渡すために使用されているファイルのように見える通貨データを最新の ISO 4217 規格に更新する
これについてさらに情報を得ることを願っています。現在、次の Java バージョンを使用しています。
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b17, mixed mode)