NetBeans 8.1セットアップ¶
Windows OS上でのNetBeans IDE 8.1のセットアップについて記述します。
リリース情報¶
NetBeans IDE 8.1リリース情報 (日本語)
NetBeans IDE 8.1リリース・ノート (日本語)
NetBeans IDE 8.1のインストール手順
トピック¶
Java SE開発に関連する新機能を紹介します。
JUnitの標準搭載¶
NetBeans IDE 7.0のリリース(2011年)から、ライセンスの関係でJUnitがNetBeans IDEのインストーラに含まれなくなり、オフライン環境ではJUnitを使用するために「尋常ならざる手間」をかける必要がありました。しかし、今回のリリースからライセンスがCPLからEPLに変更されたJUnitをインストーラに含むようになったのでよかったというトピックがあります。
GluonがビルドしたScene Builderのバイナリに対応¶
JavaFXのビジュアルデザイナーツールScenen Builderは、OpenJDKプロジェクトの一部として開発され、バイナリが各OS(Windows、Linux、MacOS X)に提供されていました。しかし、2014年末にOracleが「これからはもうScene Builderのバイナリは提供しない。オープンソース・プロダクトなのだから使用者が各自でビルドすればいいじゃないか」と言ってちょっとした騒ぎになりました。その後、Gluon社が「Scene Builderのバイナリはうちが提供するぜ」と言って2015年の3月ころからバイナリを提供するようになりました。JavaFX 8.0 Update40相当の機能がGluonビルドのScene Buiderとなっています。
NetBeans IDE 8.0は、Oracle時代のScene Buliderバイナリを認識して起動していたので、GluonビルドのScene Builderをインストールしてもそれを認識できず起動できませんでした。一応、NetBeans IDE 8.0.2 patch2でGluonビルドのScene Builderを認識できるようになったのですが、patch2はダウンロード版は用意されず、インストール後にオンラインの更新で適用されるもので、オフライン環境では適用ができません。
今回の8.1でようやく正式にダウンロード版でGluonビルドのScene Builderを起動できるようになりました。
Java言語以外の開発用にはJRE内蔵版インストーラを用意¶
Java言語で開発する人はほぼJDKを別途インストールしているので、NetBeans IDEをインストールすれば実行できます。しかし、HTML5/JavaScript、C/C++、PHPなどの開発でNetBeans IDEを使う場合、Java(JDKまたはJRE)を別途入れるのは手間でしかありません。そこで、今回からJava以外の言語開発用NetBeans IDEのインストーラにはJREを同梱するようになりました。JREは32bit版と64bit版があるので、インストーラも32bit版と64bit版が用意されています。
コード補完が改善¶
少し賢くなったようです。
maven関連の改善¶
mavenはちっとも使っていないので何が嬉しいかは分かりませんが、いろいろ改善されているようです。
プロファイラの使い勝手を改善¶
使い方を簡単にしたよ。ワンクリックでプロファイルなど。
新機能は、CPU使用率、スレッドダンプ生成、CPU表示で選択したスレッド群の混合表示とか。
Git関連の使い勝手を改善¶
インストール¶
NetBeans IDEを実行するJava(JDK)の選択¶
インストーラが、インストールするマシン上に存在するJDKを見つけてそれを表示します。
選択したJDKのパスが、NetBeansの設定ファイルに記述されます。Windows OSの場合は次のファイルになります。
C:\Program Files\NetBeans 8.1\etc\netbeans.conf
netbeans_jdkhome="C:\Program Files\Java\jdk1.8.0"
なお、JDKはアップデートを適用するたびにディレクトリが変わるので、そのたびにNetBeansの設定ファイルを変更するのは大変手間です。
そこで、NetBeans IDEが参照するJDKのディレクトリは常に固定としておき、JDKのアップデートのディレクトリをシンボリック(ジャンクション)を利用して指定すると楽です。設定方法は次を参照してください。
JDK 8セットアップ#シンボリックリンク(ジャンクション)の作成
NetBeans IDEを実行するJava(JDK)の変更¶
NetBeans IDEを実行するJavaを変更するには、次の方法があります。
- 上述のnetbeans.confの記述を変更する
- NetBeans IDE起動のコマンドラインオプションで指定する
"C:\Program Files\NetBeans 8.1\bin\netbeans64.exe" --jdkhome "C:\Program Files\Java\jdk1.8.0_66"
キャッシュディレクトリの変更¶
NetBeansは、プロジェクトを開いた時にプロジェクトの様々な情報を解析し、コード補完やimportの解決などに役立てます。その解析には多少時間がかかります。大規模なプロジェクト群を開くと、プロジェクトの解析が完了するまでディスクアクセスが発生し続け、非常に動作が重い状態が数十分続くこともあります。そこで、キャッシュディレクトリをより高速なディスクに置くことでその負荷を軽減します。
高速なディスクとは、次などが考えられます。
- RAMディスク
- PCIexpress SSD
- RAID 0などのストライピング構成のHDD
- バッファ容量の大きなHDD
- SATA3(6Gbps)のHDD
キャッシュディレクトリの指定方法は、 NetBeans IDE起動のコマンドラインオプションで指定します。
"C:\Program Files\NetBeans 8.1\bin\netbeans64.exe" --cachedir "X:\netbeans\8.1\cache"
フォントサイズの変更¶
プレゼンテーションでNetBeans IDEの画面をプロジェクターに投影して聴衆に見せるときや、超高解像度ディスプレイでNetBeans IDEを使用するときなど、標準のフォントサイズでは文字が小さすぎることがあります。コマンドラインオプションでフォントサイズを変更することができます。
"C:\Program Files\NetBeans 8.1\bin\netbeans64.exe" --fontsize 18
初期設定¶
フォント設定¶
Windows OS日本語版でJavaのGUIが使用するフォントは、JDK(JRE)のフォント設定に定義されています。デフォルトでは日本語フォントはMS ゴシックおよびMS 明朝が使用されます。この両フォントはTrueTypeフォント(アンチエイリアス対応)なのですが、埋め込みビットマップフォントを有し、16ポイント以下ではビットマップフォントとして表示されてしまい、「ぎざぎざ」になってしまいます。そこで、日本語フォントを純にアンチエイリアスなものに変更します。
JDK 8のフォント設定と変更(ぎざぎざ解消)¶
JDK 8では次のフォント設定となっています。これを変更してアンチエイリアスな表示を実現します。
書体 |
デフォルトのフォント |
変更後のフォント |
備考 |
Serif(ハネあり) |
MS 明朝 |
IPAex明朝12 |
|
Sans-serif(ハネなし) |
MS ゴシック |
Meiryo UI |
|
等幅(英語) |
MS ゴシック |
Consolas |
デフォルトではMS ゴシックの半角英数字を使用 |
等幅(日本語) |
Meiryo UI |
|
JDK(JRE)のフォント設定を変更するには、次のファイルを作成します。
- <JDKインストールディレクトリ>\jre\lib\fontconfig.properties
デフォルトの設定が、同ディレクトリにfontconfig.properties.srcとして置かれているので、必要な修正を行います。
fontconfig.propertiesの変更内容を表示するfontconfig.propertiesの変更内容を隠す
--- fontconfig.properties.src 2015-10-22 00:06:18.211101200 +0900
+++ fontconfig.properties 2015-11-08 12:00:30.000000000 +0900
@@ -47,140 +47,140 @@
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
sansserif.plain.chinese-ms950=MingLiU
sansserif.plain.chinese-ms950-extb=MingLiU-ExtB
sansserif.plain.hebrew=David
-sansserif.plain.japanese=MS Gothic
+sansserif.plain.japanese=Meiryo UI
sansserif.plain.korean=Gulim
sansserif.bold.alphabetic=Arial Bold
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
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
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
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
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
monospaced.bolditalic.korean=GulimChe
dialog.plain.alphabetic=Arial
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
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
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
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
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
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
dialoginput.bolditalic.korean=Gulim
# Search Sequences
@@ -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
@@ -265,6 +265,11 @@
filename.Courier_New_Italic=COURI.TTF
filename.Courier_New_Bold_Italic=COURBI.TTF
+filename.Consolas=CONSOLA.TTF
+filename.Consolas_Bold=CONSOLAB.TTF
+filename.Consolas_Italic=CONSOLAI.TTF
+filename.Consolas_Bold_Italic=CONSOLAZ.TTF
+
filename.Times_New_Roman=TIMES.TTF
filename.Times_New_Roman_Bold=TIMESBD.TTF
filename.Times_New_Roman_Italic=TIMESI.TTF
@@ -288,6 +293,10 @@
filename.MS_Gothic=MSGOTHIC.TTC
filename.MS_PGothic=MSGOTHIC.TTC
+filename.Meiryo_UI=MEIRYO.TTC
+
+filename.IPAexMincho=ipaexm.ttf
+
filename.Gulim=gulim.TTC
filename.Batang=batang.TTC
filename.GulimChe=gulim.TTC
詳しくは次のページに記載しています。
HiDPI環境でのフォントの大きさの調整¶
HiDPI(DPI値が大きい高解像度ディスプレイ)環境でNetBeansを実行すると、文字がとっても小さく使用が厳しいです。OSの設定でテキスト表示の拡大率が125%や150%に設定されていても、NetBeans上の文字は拡大されずに元のままです。そこで、文字を読みやすいよう大きくする設定を模索しました。
HiDPI環境下でのNetBeans IDE起動時のスプラッシュ画面。あまりに小さい。
--fontsize指定¶
NetBeansを実行するコマンドラインに引数で、--fontsize 18
のように大き目のフォントを指定すると、エディタ部、出力部、メニューバーの文字は大きくなりますが、プロジェクトツリー等やドロップダウンメニューの文字は元の小さいままです。
-J-Dsun.java2d.dpiaware=false指定¶
NetBeans 8.1(8.0.2)Windows版をインストールしたら、インストールディレクトリ下のetc\netbeans.conf
に、起動時のオプション指定箇所に-Dsun.java2d.dpiaware=true
という記述がデフォルトで付いています。これを指定しましたが、パッと見には違いがわかりにくいです。
sun.java2d.dpiaware=true(デフォルト) |
sun.java2d.dpiaware=false |
|
|
-J-Dsun.java2d.dpiaware=false指定と--fontsize指定¶
起動オプションに次を指定して起動したときの画面です。
-J-Dsun.java2d.dpiaware=false --fontsize 14
参考情報¶
HiDPI with Eclipse and NetBeans
ダークテーマ設定¶
暗色系の背景を持つテーマが、NetBeans IDEではプラグインで用意されています。
詳しくは次に記載しています。
キーバインド設定¶
NetBeans IDEでは、デフォルトで次のキーマップ設定を有しており、デフォルトではNetBeansが設定されています。
- Eclipse
- Emacs
- Idea
- NetBeans
- NetBeans 5.5
詳しくは次に記載しています。
日本語Javadocの設定¶
デフォルトでは、Java SE APIおよびJavaFX APIのJavadocへの参照設定は英語版となっています。これを日本語版にしておきます。
[ツール]メニュー > [Javaプラットフォーム]で「Javaプラットフォームマネージャ」を開き、[Javadoc]タブを選択します。
デフォルトで登録されているJDKのJavadocおよびJavaFXのjavadocを、次のURLに差し替えます。[URLの追加]ボタンで追加します。
http://docs.oracle.com/javase/jp/8/docs/api/
http://docs.oracle.com/javase/jp/8/javafx/api/
コード補完でポップアップされる表示は、JDKのソースコードから直接生成されているので日本語にはなりません。
Javaフォーマット設定¶
一行の最大桁数¶
デフォルトでは、80桁の位置に細いラインが表示されます(超えても何か起きるわけではありませんが)。画面が狭かったころは、80桁で横スクロールが発生してしまいますが、今は横幅がかなり大きいので、桁数を増やしても支障は少なくなっています。
[ツール]メニュー > [オプション]で「オプション」ダイアログを開き、[エディタ] > [フォーマット]タブを選択し、言語欄が[Java]であることを確認し、[全ての言語設定の使用]のチェックを外すと、[右マージン]欄の変更が可能となります。右マージンはデフォルトで80となっているので、これを120とか130とかに増やします。
caseラベルのインデント¶
デフォルトでは、switch文のcaseラベルが1レベルインデントされてしまうので、caseラベルをインデントしないように設定を変更します。
[ツール]メニュー > [オプション]で「オプション」ダイアログを開き、[エディタ] > [フォーマット]タブを選択し、言語欄が[Java]であることを確認し、[switch文でcase文をインデント]のチェックを外します。
デフォルトのcaseラベルのインデント |
caseラベルをインデントしない |
switch (option) {
case 'a':
Parameters.setAlfa(true);
break;
case 'b':
Parameters.setBravo(true);
break;
default:
Parameters.setAnother(option);
} |
switch (option) {
case 'a':
Parameters.setAlfa(true);
break;
case 'b':
Parameters.setBravo(true);
break;
default:
Parameters.setAnother(option);
}
|
FindBugs設定¶
NetBeans IDE上でプログラミングしたコードの品質を高めるために、コード解析ツールを入れておきます。
FindBugsは、クラスファイルを解析してバグパターンに合致するものを検出します。NetBeans IDEの認定プラグインサイトからインストールできます。詳しくは次のページに記載しています。
通常はデフォルトのルールで検査して問題はないと思います。
PMD設定¶
NetBeans IDE上でプログラミングしたコードの品質を高めるために、コード解析ツールを入れておきます。
PMDは、ソースファイルを解析して指摘ルールに合致するものを検出します。FindBugsと類似性がありますが、検査対象がソースファイルなのでコンパイルしたら見えない問題はこちらのツールで検査します。NetBeans IDEのプラグインポータルサイトからインストールできます。詳しくは次のページに記載しています。