2018-08-17

Apache NetBeans 9.0

ニュースとしては古くなってしまいましたが 米国時間 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/ダウンロード にダウンロードしました。

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 を指定します(下記の赤字の部分)。

$HOME/netbeans/etc/netbeans.conf の編集
# 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 ファイルを保存します。

$HOME/.local/share/applications/netbeans.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)」のチェックボックスにチェックを入れておきます。

GNOME Files の隠しファイルの表示設定

NetBeans 最初の起動

作成した desktop ファイル(ランチャー)が正しくアプリケーションを起動するかどうかの確認を兼ねて、GNOME Files で $HOME/.local/share/applications/ を表示して、作成した netbeans.desktop をダブルクリックして開いてみます。

$HOME/.local/share/applications/ の内容 (1)

すると、「信用できないアプリケーションのランチャー」という警告ダイアログが表示されます。信頼して起動 (L) ボタンをクリックして次へ進みます。

「信用できないアプリケーションのランチャー」の警告ダイアログ

netbeans.desktop ファイルがアイコンで表示されるようになり NetBeans が起動します。

$HOME/.local/share/applications/ の内容 (2)

License Agreement(ライセンスの使用許諾)のダイアログが表示されますので、記載内容 (Apache License 2.0) を確認して合意できれば I Accept ボタンをクリックします。

License Agreement のダイアログ

NetBeans が起動します。

起動中の Apache NetBeans 9.0

Java features limited のダイアログが表示され、nb-javac のインストールするか JDK 9 以降のバージョンを使うようにと書かれています。Install nb-javac ボタンをクリックして次へ進みます。

Java features limited のダイアログ

インストールのダイアログに従って進めて、インストール後に NetBeans を再起動します。

NetBeans が再起動します。

再起動中の Apache NetBeans 9.0

匿名で NetBeans の機能の使用状況を netbeans.org に送って良いか確認のダイアログが表示されます。I Agree か No, Thank You どちらかのボタンをクリックして次へ進みます。

Usage Statistics のダイアログ

以上で Apache NetBeans 9.0 の最初の起動が確認できました。

起動した Apache NetBeans 9.0

単純な JavaFX のプログラム [5] で、コンパイル、実行できることを確認しました。

Java Version プログラムの実行例

ちなみに、GNOME3 のアプリケーション一覧で Apache NetBeans 9.0 のアイコンが表示されていることを確認できます。

GNOME3 のアプリケーション一覧

参考サイト

  1. Apache NetBeans 9.0 / Apache NetBeans: Apache NetBeans 9.0 download page
  2. A Brief History of NetBeans
  3. Oracleから譲渡されて約2年、Apache財団が「NetBeans 9.0」を正式リリース - 窓の杜 [2018-7-30]
  4. Java 9/10をサポート、「Apache NetBeans(incubating)9.0」リリース | OSDN Magazine [2018-7-31]
  5. bitwalk123/JavaVersion

 

ブログランキング・にほんブログ村へ
にほんブログ村

0 件のコメント: