ニュースとしては古くなってしまいましたが 米国時間 7 月 29 日にApache NetBeans 9.0 がリリースされました [1]。
Java をはじめとしたプログラミング言語の開発環境としてオープンソースの Eclipse が有名ですが、NetBeans もまた オープンソースの統合開発環境 (IDE) です。私は JavaFX でプログラムを開発するのに便利だったので、Java/JavaFX の開発環境としてずっと使ってきました。ただ 2016 年に NetBeans IDE 8.2 がリリースされた後、新規のリリースが止まり Java 9 以降への対応が待たれていました。NetBeans のリリースが止まった理由は、NetBeans を所有していた Oracle 社が NetBeans を Apache Software Foundation (ASF) へ寄贈したことに因るものなのですが、あらためて NetBeans の誕生から今までの経緯を簡単に紹介します。
NetBeans IDE 開発経緯
開発初期の事柄は参考サイト [2] を参考にして、NetBeans に関わる出来事をまとめました。
- 1996年 チェコのプラハ・カレル大学の学生プロジェクトで、Xelfi という Java 用 IDE が誕生しました。
- Delphi のような IDE を Java 用に開発することが目標でした。
- 1997年 Roman Staněk 氏が Xelfi 開発メンバーと意気投合し、NetBeans, Inc. を起業しました。
- 1999年 Swing をサポートした NetBeans DeveloperX2 をリリースしました。
- 1999年 当時の Sun Microsystems 社が NetBeans, Inc. を買収
- 2000年 Sun Microsystems 社が NetBeans IDE をオープンソースプロジェクトとしてリリースしました。
- NetBeans コミュニティはその後大きく成長しました。
- 2010年 Oracle 社が Sun Microsystems 社を買収後は NetBeans IDE は Oracle 社の所有になっていました。
- NetBeans IDE は Oracle 社が開発している統合開発環境 (IDE) である JDeveloper と競合していました。
- 2016年 9月13日 Oracle 社はこの NetBeans IDE を Apache Software Foundation (ASF) の Incubator プロジェクトとすることを提案
- 2016年10月 1日 ASF の Incubator プロジェクトのひとつになりました。
- 2016年10月 3日 Oracle 社からの最後のリリースとして NetBeans IDE 8.2 がリリースされています。
- 2018年 7月29日 2 年近くを経て Apache NetBeans 9.0 がリリースされました。
- IP に抵触する部分を取り除く作業が続けられていました。
Apache NetBeans 9.0
- JDK 9, JDK 10 への対応
- Local Variable Type Inference(ローカル変数型推論)をサポートし、Java 10 の var 型のリファクタリングに対応
- Java 9 のモジュール機能 Jigsaw のサポート
- Classpath に加えて Modulepath が加わり、単一の JDK 9 モジュールとして、デフォルトのパッケージを module-info.java に記載して利用できる。
- 新しい Java Modular プロジェクト型
- JDK9 の Java Shell のサポートを導入したことで、Read-Eval-Print-Loop(REPL)が利用できるようになった。
Fedora 28 上で使う
インストールしてある OpenJDK
NetBeans をインストールする前に、使っている Fedora 28 にインストールされている OpenJDK 関連のパッケージを調べてみると、以下のように OpenJFX (JavaFX) を含む Java 8 系のパッケージだけでした。
$ rpm -qa | grep openjdk | sort
java-1.8.0-openjdk-1.8.0.181-7.b13.fc28.x86_64
java-1.8.0-openjdk-devel-1.8.0.181-7.b13.fc28.x86_64
java-1.8.0-openjdk-headless-1.8.0.181-7.b13.fc28.x86_64
java-1.8.0-openjdk-openjfx-1.8.0.181-7.b13.fc28.x86_64
java-1.8.0-openjdk-openjfx-devel-1.8.0.181-7.b13.fc28.x86_64
java-openjdk-10.0.2.13-1.fc28.x86_64
java-openjdk-headless-10.0.2.13-1.fc28.x86_64
$
これで過不足ないかどうかは解りませんが、NetBeans のベータ版などいろいろ試しており、Java 8 系だけでも NetBeans を動作させることはできるはずですので、とりあえずこのまま進めることにします。なお、今年 9 月に Java 11 (LTS) がリリースされる予定になっており、それにあわせて Java 11 に Fedora のパッケージも移行していくと予想されますので、その時に Java の新しい機能の確認をすることにします。
ダウンロードと展開
それでは、まずリリースされた NetBeans 9.0 をダウンロードします。参考サイト [1] の Downloading に示されている Binaries(下記にも転記)から incubating-netbeans-java-9.0-bin.zip をここでは $HOME/ダウンロード にダウンロードしました。
-
Binaries: incubating-netbeans-java-9.0-bin.zip ( PGP ASC, SHA-1)
NetBeans のインストール先ですが、自分の場合、習慣的に $HOME 以下のローカル・ディレクトリにインストールして使っています。/opt や /usr/local 以下にインストールする場合は適宜読み替えてください。以下のように unzip コマンドで展開すると、netbeans ディレクトリ内に展開されます。
$ cd ~/ $ pwd /home/bitwalk $ unzip ダウンロード/incubating-netbeans-java-9.0-bin.zip Archive: ダウンロード/incubating-netbeans-java-9.0-bin.zip creating: netbeans/ creating: netbeans/ide/ creating: netbeans/ide/bin/ creating: netbeans/ide/bin/nativeexecution/ ... (省略) ... inflating: netbeans/licenses/WSDL-2004 inflating: netbeans/licenses/freemarker inflating: netbeans/netbeans.css $
netbeans.conf の編集
適当なテキストエディタで $HOME/netbeans/etc/netbeans.conf を編集します。netbeans_jdkhome に(NetBeans が使用する)JDK を指定します(下記の赤字の部分)。
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
...
(省略)
...
# If you specify the heap size explicitly, you may also want to enable
# Concurrent Mark & Sweep garbage collector.
# (see http://wiki.netbeans.org/FaqGCPauses)
#
netbeans_default_options="-J-XX:+UseStringDeduplication -J-Xss2m -J-Xms32m -J-Dnetbeans.logger.console=true -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Dplugin.manager.check.updates=false -J-Dnetbeans.extbrowser.manual_chrome_plugin_install=yes -J--add-opens=java.base/java.net=ALL-UNNAMED -J--add-opens=java.base/java.lang.ref=ALL-UNNAMED -J--add-opens=java.base/java.lang=ALL-UNNAMED -J--add-opens=java.base/java.security=ALL-UNNAMED -J--add-opens=java.base/java.util=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing.plaf.basic=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing.text=ALL-UNNAMED -J--add-opens=java.desktop/javax.swing=ALL-UNNAMED -J--add-opens=java.desktop/java.awt=ALL-UNNAMED -J--add-opens=java.desktop/java.awt.event=ALL-UNNAMED -J--add-opens=java.prefs/java.util.prefs=ALL-UNNAMED -J--add-opens=jdk.jshell/jdk.jshell=ALL-UNNAMED -J--add-modules=jdk.jshell -J--add-exports=java.desktop/sun.awt=ALL-UNNAMED -J--add-exports=java.desktop/java.awt.peer=ALL-UNNAMED -J--add-exports=java.desktop/com.sun.beans.editors=ALL-UNNAMED -J--add-exports=java.desktop/sun.swing=ALL-UNNAMED -J--add-exports=java.desktop/sun.awt.im=ALL-UNNAMED -J--add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED -J--add-exports=java.management/sun.management=ALL-UNNAMED -J--add-exports=java.base/sun.reflect.annotation=ALL-UNNAMED -J--add-exports=jdk.javadoc/com.sun.tools.javadoc.main=ALL-UNNAMED -J-XX:+IgnoreUnrecognizedVMOptions"
# Default location of JDK:
# (set by installer or commented out if launcher should decide)
#
# It can be overridden on command line by using --jdkhome <dir>
# Be careful when changing jdkhome.
# There are two NetBeans launchers for Windows (32-bit and 64-bit) and
# installer points to one of those in the NetBeans application shortcut
# based on the Java version selected at installation time.
#
#netbeans_jdkhome="/path/to/jdk"
netbeans_jdkhome="/usr/lib/jvm/java-openjdk"
# Additional module clusters:
# using ${path.separator} (';' on Windows or ':' on Unix):
#
#netbeans_extraclusters="/absolute/path/to/cluster1:/absolute/path/to/cluster2"
desktop ファイル(ランチャー)の作成
GNOME3 のアプリケーション一覧から NetBeans を起動できるように desktop ファイル(ランチャー)を生成します。旧バージョンの NetBeans IDE 8.2 系のインストーラが作成した desktop ファイルの内容を参考にしました。下記の内容のテキストファイルを netbeans.desktop の名前で $HOME/.local/share/applications/ 以下に保存します。
※ /opt や /usr/local 以下に NetBeans をインストールする場合は、自分以外のアカウントからも利用できるように /usr/share/applications/ 以下に desktop ファイルを保存します。
[Desktop Entry] Encoding=UTF-8 Name=Apache NetBeans IDE Comment=The Smarter Way to Code Exec=/bin/sh "/home/bitwalk/netbeans/bin/netbeans" Icon=/home/bitwalk/netbeans/nb/netbeans.png Categories=Application;Development;Java;IDE Version=1.0 Type=Application Terminal=0 Name[ja_JP]=Apache NetBeans IDE
ちなみに .local のような隠しファイルを扱うには、GNOME Files (Nautilus) で次のように「隠しファイルを表示する (H)」のチェックボックスにチェックを入れておきます。
NetBeans 最初の起動
作成した desktop ファイル(ランチャー)が正しくアプリケーションを起動するかどうかの確認を兼ねて、GNOME Files で $HOME/.local/share/applications/ を表示して、作成した netbeans.desktop をダブルクリックして開いてみます。
すると、「信用できないアプリケーションのランチャー」という警告ダイアログが表示されます。信頼して起動 (L) ボタンをクリックして次へ進みます。
netbeans.desktop ファイルがアイコンで表示されるようになり NetBeans が起動します。
License Agreement(ライセンスの使用許諾)のダイアログが表示されますので、記載内容 (Apache License 2.0) を確認して合意できれば I Accept ボタンをクリックします。
NetBeans が起動します。
Java features limited のダイアログが表示され、nb-javac のインストールするか JDK 9 以降のバージョンを使うようにと書かれています。Install nb-javac ボタンをクリックして次へ進みます。
インストールのダイアログに従って進めて、インストール後に NetBeans を再起動します。
NetBeans が再起動します。
匿名で NetBeans の機能の使用状況を netbeans.org に送って良いか確認のダイアログが表示されます。I Agree か No, Thank You どちらかのボタンをクリックして次へ進みます。
以上で Apache NetBeans 9.0 の最初の起動が確認できました。
単純な JavaFX のプログラム [5] で、コンパイル、実行できることを確認しました。
ちなみに、GNOME3 のアプリケーション一覧で Apache NetBeans 9.0 のアイコンが表示されていることを確認できます。
参考サイト
- Apache NetBeans 9.0 / Apache NetBeans: Apache NetBeans 9.0 download page
- A Brief History of NetBeans
- Oracleから譲渡されて約2年、Apache財団が「NetBeans 9.0」を正式リリース - 窓の杜 [2018-7-30]
- Java 9/10をサポート、「Apache NetBeans(incubating)9.0」リリース | OSDN Magazine [2018-7-31]
- bitwalk123/JavaVersion
にほんブログ村