ラベル Netbeans の投稿を表示しています。 すべての投稿を表示
ラベル Netbeans の投稿を表示しています。 すべての投稿を表示

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

 

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

2018-03-25

Apache NetBeans 9.0 beta

NetBeans 9.0 ベータ版が米国時間 3 月 22 日にリリースされたようです。

NetBeans は、もともと、学生プロジェクトとしてチェコのプラハで誕生した統合開発環境ですが、1999 年に Sun Microsystems 社が買収して翌年オープンソース化されました。その後は Sun Microsystems 社を買収した Oracle 社の所有となっていましたが、2016 年に Apache 財団へ寄贈されました。

現在は、同財団の正式プロジェクトを目指した "インキュベーション" の段階にあります。

Java の統合開発環境については Eclipse がポピュラーですが、JavaFX をプログラミングする際に NetBeans を使い始めて以来、Linux、Windows 両方でメインの開発環境になってしまいましたので、個人的には NetBeans のリリース動向に注目しています。

参考サイト

  1. Downloads / Apache NetBeans
  2. 「Apache NetBeans 9.0」がベータ公開 ~Oracleから寄贈後初の正式リリースを目指す - 窓の杜 [2018-2-19]

 

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

2017-10-29

JavaFX: LineChart を使いこなそう (8) 日付軸

JavaFX のチャートを使いこなせるようになりたいと、ずいぶん前に LineChart のサンプルを示しました [1]。その時には、横軸にカテゴリの軸を使って整数値の年を文字列に変換して表示しましたが、今回は DateAxis クラスを使って、日付として軸を設定してみます。

使用した環境は以下の通りです。開発版の NetBeans IDE で JDK 9 を使用できることを確認したので、経験を積むためにも Java 9 を積極的に使っていきたいと考えています。

  • OS: Fedora 27 beta (x86_64)
  • Java: jdk-9.0.1-9.0.1-ga.x86_64 (Oracle)
  • IDE: NetBeans IDE Dev (Build 201710270002) [2]

LineChartSample8.java

DateAxis は JavaFX 標準で用意されているクラスではありません。何人かの方が Axis クラスを継承して DataAxis クラスを作成して公開されていますが、ここでは Christian Schudt 氏および Diego Cirujano 氏が著作者 (author) になっているソースを使用させていただきました [3]。

プロジェクトは、前述した以前のサンプル [1] の構成と同じですが、プロジェクト内に上記 DateAxis.java を加えています[左図参照]。

それぞれのソースを紹介したいのですが、長くなってしまいますので、ここではメインの LineChartSample8.java だけ紹介します。すべてのソースは GitHub [4] にありますので、そこからクローンして下さい。

リスト:LineChartSample8.java 
package linechartsample8;

import java.util.Calendar;
import java.util.Date;
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.chart.LineChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart;
import javafx.scene.chart.XYChart.Series;
import javafx.stage.Stage;

public class LineChartSample8 extends Application {

    @Override
    public void start(Stage stage) {
        stage.setTitle("Line Chart Sample (8)");
        //defining the axes
        DateAxis xAxis = new DateAxis();
        NumberAxis yAxis = new NumberAxis();

        xAxis.setLabel("X軸ラベル(年)");
        yAxis.setLabel("Y軸ラベル(数値)");

        //creating the chart
        LineChart<Date, Number> lineChart = new LineChart<>(xAxis, yAxis);
        lineChart.setData(getChartData());
        lineChart.setTitle("折れ線グラフのサンプル");

        Scene scene = new Scene(lineChart, 800, 400);
        String ClassName = getClass().getSimpleName();
        scene.getStylesheets().add(getClass().getResource(ClassName + ".css").toExternalForm());

        stage.setScene(scene);
        stage.show();
    }

    private ObservableList<XYChart.Series<Date, Number>> getChartData() {
        double y1 = 0.1;
        double y2 = -0.1;
        Series<Date, Number> series1 = new Series<>();
        Series<Date, Number> series2 = new Series<>();

        series1.setName("系列1");
        series2.setName("系列2");

        for (int i = 2011; i < 2021; i++) {
            series1.getData().add(new XYChart.Data<>(getYear(i), y1));
            y1 = y1 + Math.random() - .5;

            series2.getData().add(new XYChart.Data<>(getYear(i), y2));
            y2 = y2 + Math.random() - .5;
        }
        ObservableList<XYChart.Series<Date, Number>> seriesList = FXCollections.observableArrayList();
        seriesList.add(series1);
        seriesList.add(series2);

        return seriesList;
    }

    private Date getYear(int i) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(i, 0, 1, 0, 0);
        return calendar.getTime();
    }

    public static void main(String[] args) {
        launch(args);
    }

}

コンパイルオプション

DateAxis.java のインポート宣言で、パッケージ com.sun.javafx.charts はモジュール javafx.controls で宣言されていますが、エクスポートされていませんというメッセージでエラーになっています。このエラーは、Java 8 では見られなかったものです。

これは Java 9 でモジュールシステムを導入したことにより、パッケージレベルでのカプセル化が可能になったため、JDK の内部 API を使用するとコンパイル エラーにすることが可能になったためのようです。このエラーの解決には代替機能を探すことが推奨されていますが、一時的にこの強力なカプセル化を壊す方法がコンパイラのオプションに --add-exports として追加されています [5][6]。今回は、これを利用します。

--add-exports javafx.controls/com.sun.javafx.charts=ALL-UNNAMED

NetBeans IDE で、このプロジェクトの「プロジェクト・プロパティ」ダイアログを表示させ、「コンパイル」画面の「追加コンパイラ・オプション(L):」のエントリに上記オプションを追加します。これでコンパイルが通るようになります。

コンパイラ・オプションの設定

実行例を以下に示します。

LineChartSample8 の実行例

このサンプルでは、一見、前回の実行例と違いがないように見えますが、Date 型という「数値」で軸を作っていますので、ウィンドウのサイズを変えると目盛り間隔が調整されます。日付を軸に使いたいときは日付に対応した軸を使ったほうが当然便利なのです。日付(通常は、日や時間単位の間隔)を横軸にしてデータのトレンドをプロットするニーズが多いので重宝しています。

参考サイト

  1. bitWalk's: JavaFX: LineChart を使いこなそう (2)
  2. NetBeans IDE ダウンロード
  3. sco0ter / ExtFX / source / src / main / java / extfx / scene / chart / DateAxis.java — Bitbucket
  4. bitwalk123/LineChartSample8
  5. ヌーラボのアカウント基盤を Java 9 にマイグレーションして起きた問題と解決法 | ヌーラボ
  6. Java Platform, Standard Edition Oracle JDK 9 Migration Guide, Release 9

 

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

2017-10-28

Java 9 と NetBeans IDE

Java 9 が 9 月 22 日にリリースされ、つづけて 10 月 17 日にクリティカルパッチアップデート 9.0.1 が Oracle 社からリリースされました [1]。私は Java のプログラミングでは NetBeans IDE を愛用していますが、JDK 9 に対応した正式版はまだリリースされていません。しかし、NetBeans IDE の開発版では対応していますので試してみました。

使用した環境は以下の通りです。

  • OS: Fedora 27 beta (x86_64)
  • Java: jdk-9.0.1-9.0.1-ga.x86_64 (Oracle) [1]
  • IDE: NetBeans IDE Dev (Build 201710270002) [2]

これは Java のバージョン System.getProperty("java.version")、JavaFX のバージョン System.getProperty("javafx.runtime.version") およびプラットフォーム System.getProperty("os.name") を表示するだけの簡単な JavaFX の GUI プログラム [3] を実行させた例です。

JavaVersion の実行例

開発版は毎日のように更新されていますが、さすがに毎日インストールし直すことはできません。しかし、週に何回かはインストールし直しています。いずれリリースされる JDK 9 対応の NetBeans IDE 正式版に備え、従来版との違いを確認しながら Java 9 を使い始めています。

参考サイト

  1. Java SE Development Kit 9 - Downloads
  2. NetBeans IDE ダウンロード
  3. bitwalk123/JavaVersion

 

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

2016-03-08

NetBeans IDEでのネイティブ・パッケージング

Java でプログラミングをする一番大きな理由は、(自分にとっては)クロスプラットフォームな言語だからです。UI はプログラミングの一部であると思っているので、最も身近なデスクトップの GUI にフォーカスして取り組んでいますが、JavaFX を使うようになってからは、手軽に JavaFX を扱える NetBeans IDE ばかりを使うようになりました。NetBeans IDE では、アプリケーションをビルドするとプロジェクトディレクトリの中に dist というディレクトリを作成し、アプリケーション全てをまとめた jar ファイルを作成してくれます。

これだけでも結構重宝するのですが、NetBeans IDE が動作しているプラットフォーム (OS) に対応したインストールパッケージを作成する機能もあります。これを NetBeans IDE では「ネイティブ・パッケージング」と呼んでいます。結構嬉しい機能です。

上記サイトでは Windows を例にして、詳しく説明がされていますので、ここでは RPM 系 Linux である Fedora の場合について紹介したいと思います。Linux 上で動作する NetBeans IDE では、このネイティブ・パッケージングで Red Hat 系の RPM あるいは Debian 系の deb パッケージを作成します。

動作環境は次の通りです。

  • OS: Fedora 23 (x86_64)
  • Java: jdk1.8.0_74-1.8.0_74-fcs.x86_64 (Oracle)
  • IDE: NetBeans IDE 8.1

まず、RPM パッケージ作成に必要な rpm-build パッケージをインストールしておきます。

$ rpm -qa | grep rpm-build
rpm-build-4.13.0-0.rc1.12.fc23.x86_64
rpm-build-libs-4.13.0-0.rc1.12.fc23.x86_64
$ 

RPM パッケージ化するサンプルとして、JavaFX のサンプルである BrickBreaker を使います。新規プロジェクトを作成する際に、カテゴリの下の方に「サンプル」がありますので JavaFX を選びプロジェクトの欄から BrickBreaker を選んで、「次へ」ボタンをクリックします。

「終了」ボタンをクリックして、BrickBreaker プロジェクトを作成します。

ファイルタブでプロジェクト BrickBreaker を選択、右クリックしてプロパティを選択してプロジェクトのプロパティ・ウィンドウを開きます。

左側のカテゴリのリストから、「ビルド」→「デプロイメント」を選択します。

「ネイティブ・パッケージの有効化」をチェックします。

「アイコンとスプラッシュ・イメージ」の「編集」ボタンをクリックして。「ネイティブ・パッケージ・アイコン」の欄に適当なアイコン画像を指定しておきます。

ここでは、以下のような Linux のマスコット Duke の 128x128 ピクセルの PNG 画像を指定しています。

ビルドされるパッケージの名前に付加されるバージョン番号は、カテゴリ「アプリケーション」の画面で指定します。ここでは 1.0 のままにします。

プロジェクト BrickBreaker を選択して、メニューから「実行」→「プロジェクト(BrickBreaker)を消去してビルド」を選択して、プロジェクトをビルドします。

プロジェクトタブでプロジェクト BrickBreaker を選択、右クリックして「パッケージとして」→「RPMパッケージ」を選択します。

すると、「出力」ウィンドウに下記のようなメッセージが表示され、しばらく待つと「ビルド成功」と緑字で表示されて終了します。RPM パッケージは NetBeansProjects/BrickBreaker/dist/bundles 以下に作成されています。

ant -f /home/bitwalk/NetBeansProjects/BrickBreaker -Djar.archive.disabled=true -Dnative.bundling.type=rpm build-native
build-native:
init:
deps-clean:
Updating property file: /home/bitwalk/NetBeansProjects/BrickBreaker/build/built-clean.properties
Deleting directory /home/bitwalk/NetBeansProjects/BrickBreaker/build
clean:
init:
deps-jar:
Created dir: /home/bitwalk/NetBeansProjects/BrickBreaker/build
Updating property file: /home/bitwalk/NetBeansProjects/BrickBreaker/build/built-jar.properties
Created dir: /home/bitwalk/NetBeansProjects/BrickBreaker/build/classes
Created dir: /home/bitwalk/NetBeansProjects/BrickBreaker/build/empty
Created dir: /home/bitwalk/NetBeansProjects/BrickBreaker/build/generated-sources/ap-source-output
Compiling 10 source files to /home/bitwalk/NetBeansProjects/BrickBreaker/build/classes
警告: [options] ブートストラップ・クラスパスが-source 1.6と一緒に設定されていません
警告1個
Copying 45 files to /home/bitwalk/NetBeansProjects/BrickBreaker/build/classes
compile:
Created dir: /home/bitwalk/NetBeansProjects/BrickBreaker/dist
Detected JavaFX Ant API version 1.3
Launching  task from /usr/java/jdk1.8.0_74/jre/../lib/ant-javafx.jar
Warning: From JDK7u25 the Codebase manifest attribute should be used to restrict JAR repurposing.
         Please set manifest.custom.codebase property to override the current default non-secure value '*'.
Launching  task from /usr/java/jdk1.8.0_74/jre/../lib/ant-javafx.jar
Note: To create native bundles the  task may require external tools. See JavaFX 2.2+ documentation for details.

Launching  in native packager mode...
Copying 1 file to /home/bitwalk/NetBeansProjects/BrickBreaker/build/icon
Source native icon reference: /home/bitwalk/画像/duke3D-128.png
Processed native icon reference: /home/bitwalk/NetBeansProjects/BrickBreaker/build/icon/BrickBreaker.png
ベースJDKがありません。パッケージはシステムJREを使用します。
ベースJDKがありません。パッケージはシステムJREを使用します。
パッケージ(.rpm)は次に保存されました: /home/bitwalk/NetBeansProjects/BrickBreaker/dist/bundles
jfx-deployment-script:
jfx-deployment:
jar:
jfx-rebuild:
jfx-build-native:
ビルド成功(合計時間: 1分17秒)

早速インストールしてみます。なお、このパッケージには実行に必要なランタイム (JRE) が含まれていて、インストール先は /opt 以下になります。

[bitwalk@notepc ~]$ cd NetBeansProjects/BrickBreaker
[bitwalk@notepc BrickBreaker]$ ls
build  build.xml  dist  manifest.mf  nbproject  src
[bitwalk@notepc BrickBreaker]$ cd dist/bundles
[bitwalk@notepc bundles]$ ls
brickbreaker-1.0-1.x86_64.rpm
[bitwalk@notepc bundles]$ su
パスワード:
[root@notepc bundles]# dnf install brickbreaker-1.0-1.x86_64.rpm
メタデータの期限切れの確認は、2:16:33 前の Sun Mar  6 10:44:44 2016 に実施しました。
依存性が解決されました。
================================================================================
 Package                アーキテクチャ
                                   バージョン            リポジトリ        容量
================================================================================
インストール:
 alsa-lib               i686       1.0.29-2.fc23         fedora           392 k
 brickbreaker           x86_64     1.0-1                 @commandline      52 M
 glibc                  i686       2.22-11.fc23          updates          4.3 M
 libX11                 i686       1.6.3-2.fc23          fedora           616 k
 libXau                 i686       1.0.8-5.fc23          fedora            34 k
 libXext                i686       1.3.3-3.fc23          fedora            43 k
 libXi                  i686       1.7.6-1.fc23          updates           46 k
 libXrender             i686       0.9.9-2.fc23          fedora            30 k
 libXtst                i686       1.2.2-5.fc23          fedora            25 k
 libgcc                 i686       5.3.1-2.fc23          updates           97 k
 libxcb                 i686       1.11.1-1.fc23         updates          206 k
 nss-softokn-freebl     i686       3.22.2-1.0.fc23       updates          197 k

トランザクションの要約
================================================================================
インストール  12 パッケージ

合計容量: 58 M
総ダウンロード容量: 5.9 M
インストール済み容量: 207 M
これでいいですか? [y/N]: y
パッケージをダウンロードしています:
(1/11): libXext-1.3.3-3.fc23.i686.rpm           277 kB/s |  43 kB     00:00    
...
(省略)
...
(11/11): glibc-2.22-11.fc23.i686.rpm            2.5 MB/s | 4.3 MB     00:01    
--------------------------------------------------------------------------------
合計                                            626 kB/s | 5.9 MB     00:09     
トランザクションの確認を実行中...
トランザクションの確認に成功しました。
トランザクションのテストを実行中...
トランザクションのテストに成功しました。
トランザクションを実行中...
  インストール    : libgcc-5.3.1-2.fc23.i686                               1/12 
...
(省略)
...
  検証中          : nss-softokn-freebl-3.22.2-1.0.fc23.i686               12/12 

インストール:
  alsa-lib.i686 1.0.29-2.fc23      brickbreaker.x86_64 1.0-1                   
  glibc.i686 2.22-11.fc23          libX11.i686 1.6.3-2.fc23                    
  libXau.i686 1.0.8-5.fc23         libXext.i686 1.3.3-3.fc23                   
  libXi.i686 1.7.6-1.fc23          libXrender.i686 0.9.9-2.fc23                
  libXtst.i686 1.2.2-5.fc23        libgcc.i686 5.3.1-2.fc23                    
  libxcb.i686 1.11.1-1.fc23        nss-softokn-freebl.i686 3.22.2-1.0.fc23     

完了しました!
[root@notepc bundles]# 

GNOME デスクトップの「アクティビティ」をクリックして、アプリケーションを表示すると、Duke のアイコンの BrickBreaker が追加されています。

下記のように BrickBreaker が起動しました。

 

2016-01-04

【備忘録】NetBeans IDE のフォント

NetBeans IDE のエディタ上のフォントはなぜこうもギザギザしているのでしょうか。まるでアンチエイリアスが効いていないようだと思いつつも、最適なフォントを探すことを優先してしまい、アンチエイリアスのことを調べていませんでした。

そんな中でたどり着いた最適解が、Myrica.ttc でした 1.。

使用環境

  • OS : Fedora 23 (x86_64) / GNOME
  • JDK : jdk1.8.0_66-1.8.0_66-fcs.x86_64
  • IDE : NetBeans IDE 8.1

NetBeans IDE のオプション・ダイアログで、フォントを Myrica M 18(M は等幅フォント)に設定した時の、エディタ上のフォントの例を以下に示しました。

他のフォントに比べれば、概ね満足できるフォント表示なのですが、例えば丸括弧 ( ) がもっと滑らかにならないか、など不満は残ります。

ここまできて、ようやくアンチエイリアスについて調べてみることにしました。すると、多くの方が同じ不満を抱いているらしく、すぐに解決方法が見つかりました。参考にさせていただいたサイトを [2] に示しました。

私は、NetBeans IDE をダウンロードサイトからダウンロードして、/home にある自分のアカウントのディレクトリ内にインストールしてしまっています。この場合、~/netbeans-8.1/etc/netbeans.conf を編集することになります。下記に朱字の部分を追加します。

# Options used by NetBeans launcher by default:
# (can be overridden by explicit command line switches)
#
# Note that default -Xmx is selected for you automatically.
# You can find these values in var/log/messages.log file in your userdir.
# The automatically selected value can be overridden by specifying -J-Xmx
# here or on the command line.
#
# 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-client -J-Xss2m -J-Xms32m -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-Dawt.useSystemAAFontSettings=lcd"

NetBeans IDE を起動して、同じソース部分を比較してみましょう。

エディタ部分だけでなく、行番号など他の部分も含めて、随分となめらかになりました。知らない、ということは恐ろしいことです。

参考サイト

  1. プログラミングフォント Myrica | プログラミングフォント Myrica / Estable
  2. NetBeansフォントのアンチエイリアスを有効にする | Worth Living

2014-03-22

NetBeans IDE 8.0 のインストール (Fedora 20)

Java 8 と同時に NetBeans IDE 8 もリリースされ、Linux 用にもパッケージが利用可能でしたので早速インストールしました。

私はずっと参考サイト [1] のサイトから NetBeans IDE をダウンロードし、/opt 以下にインストールして使っていましたが、念の為、yum で調べてみると fedora のリポジトリでも RPM パッケージで利用可能なものがあることが判りました。ただ、NetBeans IDE のバージョン番号がパッケージ名からはよく判らないので今回も使いません。しかし、参考までに、fedora のリポジトリで利用可能な NetBeans IDE をインストールする場合を下記に示しました。

# yum install netbeans-platform
読み込んだプラグイン:langpacks
Dropbox                                                  |  951 B     00:00     
...
(省略)
...
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ netbeans-platform.x86_64 1:7.0.1-9.fc20 を インストール
...
(省略)
...
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package                 アーキテクチャー
                                      バージョン             リポジトリー  容量
================================================================================
インストール中:
 netbeans-platform       x86_64       1:7.0.1-9.fc20         fedora       3.7 M
依存性関連でのインストールをします:
 felix-main              noarch       4.2.0-4.fc20           fedora       493 k
 javahelp2               noarch       2.0.05-15.fc20         fedora       552 k
 jna                     x86_64       3.5.2-2.fc20           fedora       775 k
 jna-contrib             noarch       3.5.2-2.fc20           fedora       476 k
 swing-layout            noarch       1.0.4-8.fc20           fedora        71 k

トランザクションの要約
================================================================================
インストール  1 パッケージ (+5 個の依存関係のパッケージ)

総ダウンロード容量: 6.0 M
インストール容量: 18 M

NetBeans IDE 8.0 インストール前の準備

NetBeans IDE 8.0 をインストールする前に、Java 8 の JDK をインストールしておきます。私の環境では、Fedora の OpenJDK と Oracle の JDK の RPM パッケージをインストールしてあります。

$ rpm -qa | grep jdk
java-1.8.0-openjdk-javadoc-1.8.0.0-0.25.b126.fc20.noarch
java-1.8.0-openjdk-1.8.0.0-0.25.b126.fc20.x86_64
java-1.7.0-openjdk-headless-1.7.0.60-2.4.5.1.fc20.x86_64
jdk-demo-sample-1.8.0-fcs.x86_64
java-1.7.0-openjdk-javadoc-1.7.0.60-2.4.5.1.fc20.noarch
java-1.8.0-openjdk-devel-1.8.0.0-0.25.b126.fc20.x86_64
java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64
jdk-1.8.0-fcs.x86_64
java-1.7.0-openjdk-devel-1.7.0.60-2.4.5.1.fc20.x86_64

NetBeans IDE 8.0 のインストール

参考サイト [1] のサイトからダウンロードした netbeans-8.0-linux.sh をルート権限で sh で実行します。

# sh ./netbeans-8.0-linux.sh
インストーラを構成しています...
システムでJVMを検索しています...
インストール・データを抽出しています...
インストーラ・ウィザードを実行中...

まず、使用許諾条件に同意します。

インストール先を選択します。ここでは、/opt 以下にインストールするように設定しています。

インストールには暫く時間がかかります。

インストール終了後、メニューから NetBeans IDE 8.0 を選んで起動します。

最初に起動で、以前のバージョンの NetBeans IDE を使っていた場合、設定をインポートするか聞かれるので「Yes」をクリックします。

起動画面が表示されますので、しばし待ちます。

NetBeans IDE 8.0 の画面が表示され無事起動しました。

Java プラットフォームは Oracle の JDK と OpenJDK の両方を利用できるようにしてあります。

Java のバージョンを確認するためのサンプルプログラムの実行例を示しました。

参考サイト

  1. NetBeans IDE ダウンロード