ここで重要なのは、Java 7の一部である変更で、。というファイルを置き換えることにより、rt.jarを再構築せずに通貨のリストを更新できるようにすることですcurrency.data
。オーバーライドアプローチではなく、このアプローチを使用するcurrency.properties
と、同じ国の他の通貨コードに影響を与えることなく、新しい通貨コードを追加できます。
言われていないのは、実際に新しいを構築する方法currency.data
です。CurrencyData.properties
このファイルは、java/utilのOpenJDKソースコードにあると呼ばれるファイルから生成されます。
私がしたことは、 OpenJDKソース( )でCurrencyData.properties
見つかったものをコピーし、次の行を変更したことです。openjdk\jdk\src\share\classes\java\util
BZD084-CAD124-CDF976-CHF756-CLF990-CLP152-CNY156-COP170-CRC188-CSD891-CUP192-\
に
BZD084-CAD124-CDF976-CHF756-CLF990-CLP152-CNH156-CNY156-COP170-CRC188-CSD891-CUP192-\
次にGenerateCurrencyData.java
、のソースディストリビューションでファイルを取得しましたopenjdk\jdk\make\tools\src\build\tools\generatecurrencydata
。このユーティリティは、System.InからCurrencyData.propertiesと同じ形式で入力を受け取り、それをcurrency.dataファイルに変換します。System.Inの代わりにFileInputStreamを使用するように少し変更しました。
currencyData.load(System.in);
に
currencyData.load(new FileInputStream(fileName));
編集したCurrencyData.propertiesファイルでこれを実行し、元の.dataファイルを安全な場所に置いた後、結果のcurrency.dataファイルをJRE \ libディレクトリに配置すると、を使用するコードを実行できるようになりますCurrency.getInstance("CNH")
。