[ index ]

Windows OS上へJDK 7をインストール

 

2012-12-12 Java SE 7 Update10がリリースされました。

Windows 7 (64bit版)に、Java SE Development Kit 7 をインストールする手順です。

2012-09-06 JavaFXデモ、ドキュメントのインストールを追記
2012-08-24 フォント設定を追記
2012-08-21 Update 6に合わせて修正

はじめに

Java開発環境であるJava SE Development Kit(通称JDK)のインストールには、いくつか注意点があります。

まず、JDK 7では、以前のバージョンとはインストールの構成が変わり、デモ・サンプルが別ファイルとして提供されるようになり、また、JavaFXのインストーラが実行されるようになりました。

次に、Windows Vista以降では、UACと呼ばれる保護機構が働き、Program Filesディレクトリにマシン共通のファイルを置くには手順を踏む必要があります。

そして、JDK 7の新しいUpdateをインストールするとき、インストール場所を前のUpdateのディレクトリとは別の場所にしてしまうと、JDKを使用するツールの設定を変更して回る必要が生じます。

この文書は、これらの注意点を加味した著者の普段実施しているインストール手順を示すものです。また、最後に環境設定用バッチファイルを用意しています。コマンドプロンプトにて複数バージョンのJDKを使い分ける用途に作成したものです。

目次

インストール必要物の入手

Oracle社のWebサイトから、次の3つのファイルを入手します。

  1. JDKインストーラ・ファイル
  2. JDKのデモおよびサンプルファイル
  3. JDKのドキュメントファイル
  4. JavaFXのデモおよびサンプルファイル
  5. JavaFXのドキュメントファイル

Oracle社のWebサイト上のJava SE関連ページは次のURLです。

JDKインストーラ・ファイルの入手

Java SEダウンロードページを開きます。

Java SE 7のJDKの[DOWNLOAD]リンクを辿ります。

Windows x64(Windows OS 64bit版)用のJDKをダウンロードします。

JDKデモおよびサンプル・ファイルの入手

上述JDKインストーラ・ファイルのダウンロードと同じページに、デモとサンプルがあります。

Windows x64(Windows OS 64bit版)用のJDKデモおよびサンプル・ファイルをダウンロードします。

JavaFXデモおよびサンプル・ファイルの入手

上述JDKインストーラ・ファイルのダウンロードと同じページに、デモとサンプルがあります。

Windows用のJavaFXデモおよびサンプル・ファイルをダウンロードします。

JDKのドキュメント・ファイルの入手

Java SEダウンロードページを開きます。

Java SE 7 Documentationの[DOWNLOAD]リンクを辿ります。

現時点では英語版のファイルしかありませんので、これをダウンロードします。

JavaFXのドキュメント・ファイルの入手

上述JDKドキュメント・ファイルのダウンロードと同じページに、JavaFXドキュメントがあります。

JavaFXドキュメントをダウンロードします。

ダウンロードしたファイルの確認

JDK 7u6の場合、次の5つのファイルがダウンロードできたことを確認します。

jdk-7u10-windows-x64.exe
jdk-7u10-windows-x64-demos.zip
jdk-7u6-apidocs.zip
javafx_samples-2_2_4-windows.zip
javafx-2_2_0-apidocs.zip

インストール

入手したファイルをインストールします。

JDKインストーラによるJDKのインストール

まず、入手したJDKインストーラ・ファイルjdk-7u10-windows-x64.exeを実行すると、インストーラが起動します。

注)次以降の画面キャプチャはjdk-7u6のものですが手順は一緒です。手順が変わるupdateがリリースされたら更新する予定

補足)JDK 7 Update6以降のバージョンから、JavaFXがバンドルインストールではなくJDK自体に含まれるようになりました。JavaFX関係のファイルがJDKと同じディレクトリに入ります。

[次へ]ボタンを押します。

JDKのインストールディレクトリは、末端のディレクトリ名が、JDK 7のUpdate数を含んだものとなっています。これは、同じマシンに複数のUpdateをインストールして使い分ける用途であれば必要ですが、通常同じJDK 7であればUpdateは最新のものを1つだけ入れておくことが多いので、設定変更のインパクトが少ないようUpdate番号を含まないディレクトリ名にしておきます。

[変更]ボタンを押します。

ディレクトリ名を、jdk1.7.0に変更します(末尾の_06を削除)。

[OK]ボタンを押します。

インストール先が変更されたことを確認し、[次へ]ボタンを押します。

JDKのインストールが開始されるので、しばらく待ちます。

JDK(Java SE Development Kit)をインストールすると、同時にJRE(Java)もインストールします。インストーラがJREのインストール先を聞いてきます。ここは、デフォルトのままで問題ないので、変更はしません。

メモ) JREを入れたくない場合、ここでキャンセルする手もあります。例えば、プレビュー版のJDK 8を入れてみたいが、システムのデフォルトJavaバージョンはJava SE 7のままにしたいときなどです。

[次へ]ボタンを押します。

JREのインストールが開始するので、しばらく待ちます。

インストール完了のメッセージが表示されます。

[閉じる]ボタンを押します。

※ Java SE Development Kit 7 Update 5までは、この先にJavaFX SDKのセットアップがありましたが、Update 6からはインストーラは1つになり、Java FX SDKの別途インストールは行われません。また、インストール先も1つとなっています。

これでJDKのインストールが完了しました。

インストールされたコンポーネント(Windowsのインストーラ単位)は次の2つです。(Windowsのコントロールパネルからアンインストールを選択して表示される内容)

Java SE Development Kit 7 Update 10 (64-bit)
Java 7 Update 10 (64-bit)

インストール場所は次になります。

C:\Program Files
    +--- Java
    |      +--- jdk1.7.0
    |      +--- jre7

Java FX関係のコマンドやjarファイルも一緒にこのディレクトリ下にインストールされています。

JDKのデモおよびサンプルファイルのインストール

入手したファイルjdk-7u10-windows-x64-demos.zipを解凍し、JDKインストールディレクトリに置きます。

(置く場所は任意ですが、筆者はJDKと一緒に置いています。)

具体的な手順を以降に示します。

  1. Windows標準のファイル・エクスプローラでzipを解凍・展開する方法
  2. 他の解凍ツールで解凍・展開する方法(メモレベル)

Windowsのファイル・エクスプローラで展開する場合

ファイルをエクスプローラ上でダブルクリックします。すると、jdk1.7.0_10フォルダが表れます。このフォルダをダブルクリックすると、demoフォルダおよびsampleフォルダが表れます。この2つのフォルダをエクスプローラ上で複数選択し、JDKインストールディレクトリであるC:\Program Files\Java\jdk1.7.0 にドラッグ&ドロップします。

すると、次のダイアログが表示されます。

C:\Progra Files以下は、保護されたディレクトリなので、確認が必要になります。

[続行]ボタンを押します。

次のディレクトリ構成となります。

C:\Program Files
    +--- Java
           +--- jdk1.7.0
                  +--- demo
                  +--- sample

動作確認がてら、デモプログラムを1つ実行してみます。エクスプローラで、次のファイルをダブルクリックします。

デモプログラムが起動(次の画面)すれば、JDKのインストール含めて正常です。

他の解凍ツールなどで展開する場合

一旦ユーザーのホームディレクトリ以下などに展開し、展開された中のdemoおよびsampleフォルダをエクスプローラで上述と同様コピーします。

直接C:\Program Filesの下に展開しようとすると、UACの働きによって、エラーになってしまったり、C:\Users\<ログイン名>\AppData\Local\VirtualStore\Program Files\Java\jdk1.7.0\jdk1.7.0_10 に生成されてしまったりといった問題が生じることがあります。

JDKのドキュメントファイルのインストール

入手したファイルjdk-7u6-apidocs.zipを解凍し、JDKインストールディレクトリに置きます。

(置く場所は任意ですが、筆者はJDKと一緒に置いています。)

Windowsのファイル・エクスプローラで展開する場合

ファイルをエクスプローラ上でダブルクリックします。すると、docフォルダが表れます。これを、エクスプローラ上で、JDKインストールディレクトリであるC:\Program Files\Java\jdk1.7.0 にドラッグ&ドロップします。

すると、次のダイアログが表示されます。

C:\Progra Files以下は、保護されたディレクトリなので、確認が必要になります。

[続行]ボタンを押します。

次のディレクトリ構成となります。

C:\Program Files
    +--- Java
           +--- jdk1.7.0
                  +--- docs
                         +--- index.html
                         +--- api
                         :      +--- index.html
                         :      :

C:\Program Files\Java\jdk1.7.0\docs\index.html をブラウザで開くとJavaドキュメントのトップページが表示されます。ブックマークなどしておくとよいでしょう。

他の解凍ツールなどで展開する場合

一旦ユーザーのホームディレクトリ以下などに展開し、展開された中のdocフォルダをエクスプローラで上述と同様コピーします。

直接C:\Program Filesの下に展開しようとすると、UACの働きによって、エラーになってしまったり、C:\Users\<ログイン名>\AppData\Local\VirtualStore\Program Files\Java\jdk1.7.0\docs に生成されてしまったりといった問題が生じることがあります。

JavaFXのデモおよびサンプルファイルのインストール

入手したファイルjavafx_samples-2_2_4-windows.zipを解凍し、JDKインストールディレクトリに置きます。

(置く場所は任意ですが、筆者はJDKと一緒に置いています。)

次のディレクトリ構成となります。

C:\Program Files
    +--- Java
           +--- jdk1.7.0
                  +--- javafx-samples-2.2.4
                         +--- src
                         +--- web-files
                         +--- BrickBreaker.html
                         +--- BrickBreaker.jar
                         +--- BrickBreaker.jnlp
                         +--- Ensemble.html
                         +--- Ensemble.jar
                         +--- Ensemble.jnlp
                         :      

動作確認がてら、デモプログラムを1つ実行してみます。エクスプローラで、次のファイルをダブルクリックします。

デモプログラムが起動(次の画面)すれば、JDKのインストール含めて正常です。

このEnsembleデモは、JavaFXの機能を一通りデモするプログラムなので、是非いろいろいじってみてください。

JavaFXのドキュメントファイルのインストール

JDKインストールディレクトリの下に、javafx-docsディレクトリを新規作成し、ここに入手したファイルjavafx-2_2_0-apidocs.zipを解凍して置きます。

(置く場所は任意ですが、筆者はJDKと一緒に置いています。)

次のディレクトリ構成となります。

C:\Program Files
    +--- Java
           +--- jdk1.7.0
                  +--- javafx-docs
                         +--- api
                                +--- javafx
                                +--- netscape
                                +--- resources
                                +--- allclasses-frame.html
                                :

環境設定

Windows上でJDKを使うにあたって実施する環境設定について記述します。

環境変数の設定

Java関係のツールは、JDKのインストールされているディレクトリを環境変数JAVA_HOMEで参照するものがあります。

そこで、次の2つの環境変数を定義します。

環境変数名  設定内容  設定例 
JAVA_HOME 
JDKのインストールディレクトリ 
C:\Program Files\Java\jdk1.7.0 
PATH 
JDKのコマンドがあるディレクトリ(bin) 
C:\Program Files\Java\jdk1.7.0\bin  

環境設定にはいくつか方法があります。あらかじめユーザーまたはシステムの環境変数PATHにJDKを追加する方法もありますが、複数のJDKバージョン(JDK 6 32bit版、JDK 6 64bit版、JDK 7 32bit版、JDK 7 64bit版、JDK 8 32bit版、JDK 8 64bit版、JDK 8 lambda 32bit版、JDK 8 lambda 64bit版、・・・)を併用する場合、毎回変更するのは非常に手間です。

そのような場合は、バッチファイルで環境設定を切り替えるようにしておくとよいかと思います。

環境設定バッチファイル(setjdk.bat)

インストールされているJDKをレジストリから検索し、そのパスを環境変数JAVA_HOMEおよびPATHに設定するバッチファイルです。コマンドラインオプションで、32bit版JDKを使用するかどうか、JDKのバージョン番号を指定することが可能です。

ダウンロード
setjdk.bat リリース一覧
バージョン番号  リリース日  ダウンロードリンク  備考 
0.1  2012/06/17 
setjdk.bat
 
       

setjdk.batを、環境変数PATHの通った場所におきます。例えば、あらかじめ %HOMEPATH%\bin を作成し環境変数PATHに追加し、そこにsetjdk.batを置くなどです。

使用方法

書式は次のとおりです。

setjdk [32] <JDKバージョン番号>

WindowsにインストールしたデフォルトのJDKを使用する場合

C:\Users\torutk> setjdk
"JDK version not specified, so using CurrentVersion=1.7"
C:\Program Files\Java\jdk1.7.0

C:\Users\torutk> javac -version
javac 1.7.0_10

C:\Users\torutk>

32bit版のJDK 7を使用する場合

C:\Users\torutk> setjdk 32 1.7
C:\Program Files (x86)\Java\jdk1.7.0

C:\Users\torutk> javac -version
javac 1.7.0_10

C:\Users\torutk>

ヘルプ(/?)オプションの指定

C:\Users\torutk> setjdk /?
"Usage: setjdk [32] <jdk version>"
"  32 - Setting 32bit JDK"
"Installed JDK in registory"

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.7
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.7.0_06
検索の完了: 該当 2 件

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit\1.7
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit\1.7.0_06
検索の完了: 該当 2 件

C:\Users\torutk>

フォントの設定

Javaプログラムは、クロスプラットフォームで使用されることを想定しています。GUIを持つJavaプログラムでは、フォント種類の指定を特定プラットフォームに限定される物理フォント名(例えばMS ゴシック)で指定することはあまり推奨されず、代わりに論理フォント名(例えばMonospaced)で指定します。

Javaの実行環境では、Javaプログラムが指定する論理フォント名を、実際に実行するプラットフォームで利用可能な物理フォントに対応付けています。この対応付けの設定は、JDKまたはJREの次の設定ファイルに記述されています。

JDKのフォント設定
<JDKインストールディレクトリ>\jre\lib\fontconfig.properties.src
JREのフォント設定
<JREインストールディレクトリ>\lib\fontconfig.properties.src

Javaの実行環境は、実際にはこのfontconfig.properties.srcファイルを読むのではなく、このファイルに基づき生成されたfontconfig.bfcファイルを読み込みます。fontconfig.bfcはバイナリ形式です。しかし、fontconfig.bfcの生成方法は分かりません(明示的には公開されていないようです)。

しかし、フォント設定を変更したい場合、fontconfig.properties.srcと同じ書式でfontconfig.propertiesという名前のファイルを用意しておけば、fontconfig.bfcよりも優先して読み込まれるので、ここではfontconfig.properties.srcを修正してfontconfig.propertiesを作成します。

フォント設定ファイルに関するoracleの公式ドキュメントは次です。

Windows用JDKのデフォルト・フォント設定をみる

日本語環境でのWindows用JDK・JREのデフォルトのフォント設定(fontconfig.properties.src)は次のようになっています。

 論理フォント名 英字フォント   日本語フォント  備考
serif
Times New Roman
 MS 明朝  ひげ付き書体、日本語ははね付き(明朝)
sansserif
Arial
 MS ゴシック  ひげなし書体、日本語はゴシック
monospaced
Courier New
 MS ゴシック  等幅、英字も日本語フォントが適用される
dialog
Arial
 MS ゴシック  
dialoginput
Courier New
 MS ゴシック  

fontconfig.properties.srcから、論理フォントSerifに対応する英字・日本語物理フォントの記述を抜粋したものが、以下です。(bold, italic, bold italicの指定は省略)

serif.plain.alphabetic=Times New Roman
serif.plain.japanese=MS Mincho

論理フォントSerifが指定されたとき、日本語ロケール(windows-31j)でのフォント優先度は

sequence.serif.windows-31j=alphabetic,japanese,dingbats,symbol

alphabeticが優先となっています。この場合、英文字(ASCII文字)はTimes New Romanが使われ、日本語文字はMS Mincho(MS 明朝)が使われます。なお、フォント名はMS Minchoと英語で指定しています。

このように、日本語ロケール(Windows-31J)において、通常は英数字等のASCII文字については英字フォントが使用され、日本語(非ASCII)文字については日本語フォントが使用されます。しかし、論理フォントがmonospacedの場合は例外で、英字フォントも日本語フォントとなります。

この優先度はfontconfig.properties.src中の次の記述によります。

sequence.monospaced.windows-31j=japanese,alphabetic,dingbats,symbol

論理フォントserifの設定と違って、japaneseが優先されているため、ASCII文字についてもjapaneseであるMS ゴシックが使用されます。これは、おそらく使用する物理フォントが異なると、例えば欧文フォントの半角2文字分の幅と和文フォントの全角1文字の幅とが一致しないという問題が生じるためと思います。

フォントファイル名の指定は次のようになっています。

filename.Times_New_Roman=TIMES.TTF
filename.MS_Mincho=MSMINCHO.TTC

物理フォント名Time New Romanに対してTIMES.TTFフォントファイルが、MS Minchoに対してMSMINCHO.TTCが使われています。フォント名に含まれる空白文字がここの設定記述ではアンダースコアに置き換わっています。

現在の Javaの実装の制約で、フォント名にアンダースコアが入っていると困ったことになります(指定不可)。例えば、MeiryoKe_Consoleという物理フォントを使用したいので、フォントファイル名指定でfilename.MeiryoKe_Console=meiryoKe602r1.ttcと記述してみたが、適用されないという問題があります。この問題については、はてな日記2009-05-03に書いています。

「MS 明朝」、「MS ゴシック」はぎざぎざな表示になる

fontconfig.properties.srcの定義で日本語フォントに使用される「MS 明朝」や「MS ゴシック」は、ビットマップフォントを組み込んだアウトライン(TrueType)フォントで、ふつうに使うサイズ(12ポ イントや14ポイントあたり)の表示ではビットマップが使われます。ビットマップはClearType(アンチエイリアス)されないので、「ぎざぎざ」し ます。

Windows Vista以降で搭載されるメイリオフォントや、フリーのフォント(IPAフォントなど)を使うと、ビットマップフォントの組み込みがないので、ふつうに使うサイズにおいてもアンチエイリアスを利用できますが、デフォルト・フォント設定を変更する必要があります。

そこで、fontconfig.properties.srcをもとに、日本語で使用するフォントをMS ゴシック/MS 明朝ではなく、どのサイズでもアンチエイリアスされるフォント(メイリオ等)に置き換えます。置き換えたファイルを、fontconfig.propertiesの名前にします。

フォントの設定(1) monospacedの変更

まず、論理フォント monospaced を、アンチエイリアスがかかるフォントに変更します。

monospacedは等幅フォントを使うのが一般的です。Windows 7にはアンチエイリアスのかかる日本語の等幅フォントが標準で搭載されていないので、一工夫が必要です。

英字フォントについては、Consolasフォントを、日本語フォントについてはMeiryo UIフォントを使用します。

メモ) メイリオやMeiryo UIフォントは、日本語は等幅ですが英数字等はプロポーショナル(可変幅)となっています。そのため、monospaced(等幅の意)をメイリオにするだけでは具合が悪いことになります。Meiryo UIは、日本語部分も漢字とひらがな・片仮名で幅を変えており、等幅性はなくなっています。ただし、メイリオは行間が他のフォントに比べ広くなっており、エディタ等に使うと表示行数が減ってしまいます。そこで、今回は欧文文字を等幅で、和文文字は非等幅で設定しています。

変更内容をdiff -u形式で次に示します。

$ diff -u fontconfig.properties.src fontconfig.properties.monospaced_consolas_m
eiryoui 
--- fontconfig.properties.src   2012-08-22 09:36:16.390511000 +0900
+++ fontconfig.properties.monospaced_consolas_meiryoui  2012-08-22 09:31:19.411524800 +0900
@@ -99,32 +99,32 @@
 sansserif.bolditalic.japanese=MS Gothic
 sansserif.bolditalic.korean=Gulim
 
-monospaced.plain.alphabetic=Courier New
+monospaced.plain.alphabetic=Consolas
 monospaced.plain.chinese-ms950=MingLiU
 monospaced.plain.chinese-ms950-extb=MingLiU-ExtB
 monospaced.plain.hebrew=Courier New
-monospaced.plain.japanese=MS Gothic
+monospaced.plain.japanese=Meiryo UI
 monospaced.plain.korean=GulimChe
 
-monospaced.bold.alphabetic=Courier New Bold
+monospaced.bold.alphabetic=Consolas Bold
 monospaced.bold.chinese-ms950=PMingLiU
 monospaced.bold.chinese-ms950-extb=PMingLiU-ExtB
 monospaced.bold.hebrew=Courier New Bold
-monospaced.bold.japanese=MS Gothic
+monospaced.bold.japanese=Meiryo UI Bold
 monospaced.bold.korean=GulimChe
 
-monospaced.italic.alphabetic=Courier New Italic
+monospaced.italic.alphabetic=Consolas Italic
 monospaced.italic.chinese-ms950=PMingLiU
 monospaced.italic.chinese-ms950-extb=PMingLiU-ExtB
 monospaced.italic.hebrew=Courier New
-monospaced.italic.japanese=MS Gothic
+monospaced.italic.japanese=Meiryo UI Italic
 monospaced.italic.korean=GulimChe
 
-monospaced.bolditalic.alphabetic=Courier New Bold Italic
+monospaced.bolditalic.alphabetic=Consolas Bold Italic
 monospaced.bolditalic.chinese-ms950=PMingLiU
 monospaced.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
 monospaced.bolditalic.hebrew=Courier New Bold
-monospaced.bolditalic.japanese=MS Gothic
+monospaced.bolditalic.japanese=Meiryo UI Bold Italic
 monospaced.bolditalic.korean=GulimChe
 
 dialog.plain.alphabetic=Arial
@@ -224,7 +224,7 @@
 
 sequence.serif.windows-31j=alphabetic,japanese,dingbats,symbol
 sequence.sansserif.windows-31j=alphabetic,japanese,dingbats,symbol
-sequence.monospaced.windows-31j=japanese,alphabetic,dingbats,symbol
+sequence.monospaced.windows-31j=alphabetic,japanese,dingbats,symbol
 sequence.dialog.windows-31j=alphabetic,japanese,dingbats,symbol
 sequence.dialoginput.windows-31j=alphabetic,japanese,dingbats,symbol
 
@@ -260,6 +260,11 @@
 filename.Arial_Italic=ARIALI.TTF
 filename.Arial_Bold_Italic=ARIALBI.TTF
 
+filename.Consolas=CONSOLA.TTF
+filename.Consolas_Bold=CONSOLAB.TTF
+filename.Consolas_Italic=CONSOLAI.TTF
+filename.Consolas_Bold_Italic=CONSOLAZ.TTF
+
 filename.Courier_New=COUR.TTF
 filename.Courier_New_Bold=COURBD.TTF
 filename.Courier_New_Italic=COURI.TTF
@@ -288,6 +293,11 @@
 filename.MS_Gothic=MSGOTHIC.TTC
 filename.MS_PGothic=MSGOTHIC.TTC
 
+filename.Meiryo_UI=MEIRYO.TTC
+filename.Meiryo_UI_Bold=MEIRYOB.TTC
+filename.Meiryo_UI_Italic=MEIRYO.TTC
+filename.Meiryo_UI_Bold_Italic=MEIRYOB.TTC
+
 filename.Gulim=gulim.TTC
 filename.Batang=batang.TTC
 filename.GulimChe=gulim.TTC

フォントの設定(2) sansserif、dialog、dialoginputの変更

論理フォントのsansserifdialogdialoginputで日本語フォントに指定される「MS ゴシック」を、「Meiryo UI」に変更します。

フォントの設定(1)で作成した内容からの変更点をdiff -u形式で次に示します。

$ diff -u fontconfig.properties.monospaced_consolas_meiryoui fontconfig.propert
ies.consolas_meiryoui
--- fontconfig.properties.monospaced_consolas_meiryoui  2012-08-22 09:31:19.411524800 +0900
+++ fontconfig.properties.consolas_meiryoui     2012-08-22 17:42:57.816228600 +0900
@@ -82,21 +82,21 @@
 sansserif.bold.chinese-ms950=PMingLiU
 sansserif.bold.chinese-ms950-extb=PMingLiU-ExtB
 sansserif.bold.hebrew=David Bold
-sansserif.bold.japanese=MS Gothic
+sansserif.bold.japanese=Meiryo UI
 sansserif.bold.korean=Gulim
 
 sansserif.italic.alphabetic=Arial Italic
 sansserif.italic.chinese-ms950=PMingLiU
 sansserif.italic.chinese-ms950-extb=PMingLiU-ExtB
 sansserif.italic.hebrew=David
-sansserif.italic.japanese=MS Gothic
+sansserif.italic.japanese=Meiryo UI Italic
 sansserif.italic.korean=Gulim
 
 sansserif.bolditalic.alphabetic=Arial Bold Italic
 sansserif.bolditalic.chinese-ms950=PMingLiU
 sansserif.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
 sansserif.bolditalic.hebrew=David Bold
-sansserif.bolditalic.japanese=MS Gothic
+sansserif.bolditalic.japanese=Meiryo UI Bold Italic
 sansserif.bolditalic.korean=Gulim
 
 monospaced.plain.alphabetic=Consolas
@@ -131,56 +131,56 @@
 dialog.plain.chinese-ms950=MingLiU
 dialog.plain.chinese-ms950-extb=MingLiU-ExtB
 dialog.plain.hebrew=David
-dialog.plain.japanese=MS Gothic
+dialog.plain.japanese=Meiryo UI
 dialog.plain.korean=Gulim
 
 dialog.bold.alphabetic=Arial Bold
 dialog.bold.chinese-ms950=PMingLiU
 dialog.bold.chinese-ms950-extb=PMingLiU-ExtB
 dialog.bold.hebrew=David Bold
-dialog.bold.japanese=MS Gothic
+dialog.bold.japanese=Meiryo UI Bold
 dialog.bold.korean=Gulim
 
 dialog.italic.alphabetic=Arial Italic
 dialog.italic.chinese-ms950=PMingLiU
 dialog.italic.chinese-ms950-extb=PMingLiU-ExtB
 dialog.italic.hebrew=David
-dialog.italic.japanese=MS Gothic
+dialog.italic.japanese=Meiryo UI Italic
 dialog.italic.korean=Gulim
 
 dialog.bolditalic.alphabetic=Arial Bold Italic
 dialog.bolditalic.chinese-ms950=PMingLiU
 dialog.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
 dialog.bolditalic.hebrew=David Bold
-dialog.bolditalic.japanese=MS Gothic
+dialog.bolditalic.japanese=Meiryo UI Bold Italic
 dialog.bolditalic.korean=Gulim
 
 dialoginput.plain.alphabetic=Courier New
 dialoginput.plain.chinese-ms950=MingLiU
 dialoginput.plain.chinese-ms950-extb=MingLiU-ExtB
 dialoginput.plain.hebrew=David
-dialoginput.plain.japanese=MS Gothic
+dialoginput.plain.japanese=Meiryo UI
 dialoginput.plain.korean=Gulim
 
 dialoginput.bold.alphabetic=Courier New Bold
 dialoginput.bold.chinese-ms950=PMingLiU
 dialoginput.bold.chinese-ms950-extb=PMingLiU-ExtB
 dialoginput.bold.hebrew=David Bold
-dialoginput.bold.japanese=MS Gothic
+dialoginput.bold.japanese=Meiryo UI Bold
 dialoginput.bold.korean=Gulim
 
 dialoginput.italic.alphabetic=Courier New Italic
 dialoginput.italic.chinese-ms950=PMingLiU
 dialoginput.italic.chinese-ms950-extb=PMingLiU-ExtB
 dialoginput.italic.hebrew=David
-dialoginput.italic.japanese=MS Gothic
+dialoginput.italic.japanese=Meiryo UI Italic
 dialoginput.italic.korean=Gulim
 
 dialoginput.bolditalic.alphabetic=Courier New Bold Italic
 dialoginput.bolditalic.chinese-ms950=PMingLiU
 dialoginput.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
 dialoginput.bolditalic.hebrew=David Bold
-dialoginput.bolditalic.japanese=MS Gothic
+dialoginput.bolditalic.japanese=Meiryo UI Bold Italic
 dialoginput.bolditalic.korean=Gulim
 
 # Search Sequences

フォントの設定(3) serifの変更

論理フォント名serifに割り当てられている日本語の物理フォントは「MS 明朝」です。Windows 7日本語版に、埋め込みビットマップを使用しない明朝系TrueTypeフォントはありません。そこで、フリーなフォントのIPAex明朝を使用します。

※ ほかにも、出島明朝、Microsoft Officeに含まれるHG明朝E(13ポイント以上でアンチエイリアス)などがあるようです。

フォントの設定(2)で作成した内容からの変更点をdiff -u形式で次に示します。

$ diff -u fontconfig.properties.consolas_meiryoui fontconfig.properties.consola
s_meiryoui_ipaexmincho 
--- fontconfig.properties.consolas_meiryoui     2012-08-22 17:42:57.816228600 +0900
+++ fontconfig.properties.consolas_meiryoui_ipaexmincho 2012-08-22 18:18:20.570643200 +0900
@@ -47,28 +47,28 @@
 serif.plain.chinese-ms950=MingLiU
 serif.plain.chinese-ms950-extb=MingLiU-ExtB
 serif.plain.hebrew=David
-serif.plain.japanese=MS Mincho
+serif.plain.japanese=IPAexMincho
 serif.plain.korean=Batang
 
 serif.bold.alphabetic=Times New Roman Bold
 serif.bold.chinese-ms950=PMingLiU
 serif.bold.chinese-ms950-extb=PMingLiU-ExtB
 serif.bold.hebrew=David Bold
-serif.bold.japanese=MS Mincho
+serif.bold.japanese=IPAexMincho
 serif.bold.korean=Batang
 
 serif.italic.alphabetic=Times New Roman Italic
 serif.italic.chinese-ms950=PMingLiU
 serif.italic.chinese-ms950-extb=PMingLiU-ExtB
 serif.italic.hebrew=David
-serif.italic.japanese=MS Mincho
+serif.italic.japanese=IPAexMincho
 serif.italic.korean=Batang
 
 serif.bolditalic.alphabetic=Times New Roman Bold Italic
 serif.bolditalic.chinese-ms950=PMingLiU
 serif.bolditalic.chinese-ms950-extb=PMingLiU-ExtB
 serif.bolditalic.hebrew=David Bold
-serif.bolditalic.japanese=MS Mincho
+serif.bolditalic.japanese=IPAexMincho
 serif.bolditalic.korean=Batang
 
 sansserif.plain.alphabetic=Arial
@@ -298,6 +298,8 @@
 filename.Meiryo_UI_Italic=MEIRYO.TTC
 filename.Meiryo_UI_Bold_Italic=MEIRYOB.TTC
 
+filename.IPAexMincho=IPAEXM.TTF
+
 filename.Gulim=gulim.TTC
 filename.Batang=batang.TTC
 filename.GulimChe=gulim.TTC

フォント設定修正後のファイル

No. 修正内容  ファイル 
 1 monospacedをConsolas+Meiryo UIに修正  fontconfig.properties.monospaced_consolas_meiryoui
 2 1.に加えMS ゴシックをMeiryo UIに修正 fontconfig.properties.consolas_meiryoui
 3 2.に加えMS 明朝をIPAex明朝に修正 fontconfig.properties.consolas_meiryoui_ipaexmincho

それでもフォントが「ぎざぎざ」になることが

この設定をしたとしても、Javaプログラムによっては表示するフォントがぎざぎざ(MS ゴシックやMS 明朝)になっていることがあります(例えば、NetBeans IED)。

これは、Javaプログラムが表示するフォントを論理フォントではなく物理フォントで指定している場合です。Javaで物理フォントを指定するのはあまり良しとされていませんが、なかにはそういうプログラムもあります。

例えば、JavaプログラムがWindows Look and Feelを指定している場合です。Windows Look and Feelを使用すると、その内部で文字フォントを論理フォントではなく物理フォント(MS ゴシック)で指定しているためです。これは、Windows OS側の問題で、いまだにWindows OS標準の画面(コントロールパネルから各種設定ダイアログを呼び出したときなど)が、いまだにメイリオでデザインされたものとMS ゴシック(MS UI ゴシック)でデザインされたものが混在し、視覚的一貫性が崩れていることが原因です。

NetBeans IDEの場合、ルックアンドフィールをコマンドラインオプションで変更することができるので、Nimbus等に変更するのも一つの回避策です。