Monday Oct 26, 2009

プロジェクト jdk-api-ja からのお知らせです。JDK 6 u10 ベースになった API ドキュメントの最新版が公開されました。オンラインのものも zip  アーカイブのものも最新になりました。
オンラインの API ドキュメントは以下から参照できます。
また zip ファイルはダウンロードページの「Java SE 6 ドキュメント」からダウンロードできます。最新版をぜひダウンロードしてくださいね。


NetBeans で使う場合にはこの zip ファイルを「ツール」>「Java プラットフォーム」で起動する「Java プラットフォームマネージャー」で Javadoc に指定してください。

コード補完などで使えるようになります。



「ヘルプ」>「Javadoc 索引検索」でも使えるようになります。



このプロジェクトやメーリングリストの登録方法などは以下に1度書いています。ドキュメント関係のおかしな点を見つけたら是非ここにお知らせしてください。

Wednesday Sep 30, 2009

NetBeans 6.8 の新機能の目玉はやはやり Java EE 6 対応でしょうか。NetBeans 6.8 の開発ビルドでは GlassFish v3 の開発ビルドをインストーラにバンドルしているので、インストール後すぐに試してみることができます。インストーラで GlassFish v3 の開発ビルドをインストールしなかった場合や zip 形式の配布物を使っている場合には「ツール」>「サーバー」で GlassFish v3 を追加登録できます。

GlassFish v3 の追加
プロジェクトの作成の途中で気付いた時でもウィザードから「追加」を選んで追加できます。
NetBeans
GlassFish v3 を選んでください。
NetBeans
別途 GlassFish v3 の開発ビルドをインストールしてあればそのインストールディレクトリを指定してください。

NetBeans から GlassFish v3 のダウンロード&インストール
もしローカルにインストールしてない場合は、このダイアログから開発ビルドをインストールできます。これは便利ですね〜。
NetBeans
インストールできたら起動してみましょう。サービスウィンドウのサーバーノード以下の GlassFish v3 を起動してみます。

GlassFish v3 は JDK 6 が必要
ところが起動できませんでした。あ、JDK 6 を使う必要があったのですね。(このダイアログの日本語訳はおかしいですね、「関連づけしてください」ですね。修正しておきます。スイマセン...)
NetBeans
実際にコマンドラインで asadmin を実行しても同じですね。
% java -version
java version "1.5.0_20"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_20-b02-315)
Java HotSpot(TM) Client VM (build 1.5.0_20-141, mixed mode, sharing)
% GlassFish_v3/bin/asadmin 
GlassFish requires Java SE version 6.  Your JDK is version 5
%

ダイアログにあるように登録した GlassFish v3 のプロパティーを変更してみます。Java タブで「Java 実行可能ファイル」に JDK 6 の java を指定します。Mac OS X の場合は
  • /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java
でしょうか。
NetBeans
システムのデフォルトを JDK 6 にしましょう
サーバーを起動してみます。今度はサーバーが起動しましたが....コンソールが文字化けしてしまっていますね。

netbeans

これは以前にもお知らせしたように NetBeans で使っている JDK と GlassFish で使っている JDK のバージョンが違うからですね。NetBeans も JDK 6 を使って実行しましょう。NetBeans はシステムで設定されている Java を使いますので、Mac OS X では Java Preference で設定を変更するのがよいでしょうね。
NetBeans
このように Mac OS X では NetBeans やそこから呼び出される GlassFish などの JDK のバージョンに注意する必要がありますね。これらに関してはエントリを参照してください。

Tuesday Jun 23, 2009

前回 JDK6 をデフォルトで使うように設定してみました。JDK5 から JDK6 に変更したことで1つ注意しないといけない問題がありますね。そうです、エンコーディングの問題です。今回はエンコーディングについて NetBeans でも関係あるところを書いてみたいと思います。ただし、これは NetBeans で編集するソースファイルのエンコーディングの話しではありませんよ。NetBeans ではソースエンコーディングはプロジェクトごとに設定できます。デフォルトは UTF-8 です。プロジェクトのプロパティーダイアログで変更できます。

JDK5 と JDK6 ではデフォルトのエンコーディングが違う

Java で使うエンコーディングが JDK5 と JDK6 では違うのですね。JDK5 では UTF-8、JDK6 では SJIS になります。ファイルの入出力にエンコーディングを特に指定していない時にそのエンコーディングが使われます。実は私はしばらく気がつかなかったのですが ^^;) これはよく知られたことのようで、いろいろなブログに書いてありますね。ただ正式なドキュメントってどこにあるのでしょう。私が探した限りでは見つかりませんでした。

では試しに、こんなプログラムを実行してみましょう。
public class Main {
    public static void main(String[] args) {
        System.out.println("Japanese=日本語");
        System.out.println("file.encoding=" + 
                System.getProperty("file.encoding"));
    }
}
Mac OS X 10.5 の場合は何も考えないとロケールは ja_JP.UTF-8 が使われます。しかし JDK6 を使うとその出力は SJIS になってしまいますから、ターミナルで見ると以下のように日本語の出力は化けてしまいます。

この問題の対処策についてもいろいろなところに書かれていますので検索してみてください。ターミナルを SJIS にするのも1つの方法です。また上のように Java に -Dfile.encoding=UTF-8 を付けてエンコーディングを UTF-8 にするのも1つの解決策なのですが、正式にサポートされている使い方なのかどうかはわかりません。また、どこか1カ所変更してすべてを UTF-8 にするという方法はないでしょうかね、私が調べたかぎりではこれも見つかりませんでした。

JDK6 で統一して、エンコーディングも UTF-8 で使いたいのですが...

Mac OS X 10.5 ではユーザーの使うロケールはデフォルトでは UTF-8 ですよね。ですので、おそらくほとんどの方が最新の JDK6 を使って、エンコーディングは UTF-8 で使いたいと考えてるのではないでしょうか。一つのプログラムなら上に書いたように -Dfile.encoding=UTF-8 をつけて実行してあげればいいことになります。NetBeans ならば -J を頭につけて -J-Dfile.encoding=UTF-8 を引数に渡すか、<NetBeans>/etc/netbeans.conf に書きます。
# Options used by NetBeans launcher by default, can be overridden by explicit
# command line switches:
netbeans_default_options="-J-Dfile.encoding=UTF-8 -J-client -J-Xss2m -J-Xms32m...."
この回避策は Windows で外部アプリケーションが UTF-8 エンコーディングを使うときに文字化けを回避する方法と同じですね。
NetBeans で確認すると以下のように UTF-8 と表示されていますね。


ところがところが、困ったことにこのオプションは NetBeans から呼び出される java アプリケーションには引き継がれません。例えば GlassFish、Tomcat、JavaFX や javadoc コマンドなど、同じ JDK6 を使うようにできてもエンコーディングまでは変えられません。これができないと結局文字化けの原因になってしまいますね。呼び出されるアプリケーションがはっきりとわかっていればそこで設定してもよいですが、これも大変です。どこか1カ所で変更できるところがあればよいのですが... 一つの設定をすべての JavaVM に渡す方法で私が思いつくのは、ん〜 _JAVA_OPTIONS 環境変数を使うことでしょうか。JAVA_HOME と同様に ~/.MacOSX/environment.plist に書いてみます。
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>JAVA_HOME</key>
        <string>/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home</string>
        <key>_JAVA_OPTIONS</key>
        <string>-Dfile.encoding=UTF-8</string>
    </dict>
</plist>
この設定はもちろん Mac OS X 的にも、Java 的にも正式なものではありません。私が試してみたというだけのものです。使用は自己責任でお願いしますね。

こうしてみると1カ所で簡単に設定するちゃんとした方法がないのであれば、エンコーディングは SJIS のまま使ったほうがいいのかもしれませんね。ターミナルの件と、NetBeans で PHP や Ruby などの外部のインタプリタで UTF-8 を使う必要がある場合以外は、ほとんどの場合は問題ないのではないでしょうか。何か問題が起きた時に、そいえば SJIS で動いているんだったな、とすぐに気付けばいいのかもしれません。

関連するエントリ:

Monday Jun 22, 2009

前回の Java for Mac OS X 10.5 Update 4 を使っている時の注意点に加えて、Mac OS X で NetBeans や Java を使う時の一般的な注意点をメモしておきます。今回は NetBeans などで使用する JDK を JDK6 に統一する、という方針で設定していってみます。これは NetBeans 6.7 で1つ重要な変更が入っていますのでそれに関係しています。
  • JDK5 と JDK6 の切り替えは Java Preferences ユーティリティで
  • NetBeans で使う JDK を設定するには
  • 知らないうちに別々の JDK を使ってしまうことがある
書いてみますが、まだまだ Mac 使いとしては未熟な私ですので、おかしなところは遠慮なく指摘してください。

JDK5 と JDK6 の切り替えは Java Preferences ユーティリティで

どの JDK を使うかをユーザー単位で設定するにはアプリケーション>ユーティリティ>Java Preferences を使います。Java SE 6 を一番上に持って行きます。これで設定すればパスの一番最初に使いたい JDK の java が置かれるはずです。
JDK Preferences
ターミナルから
% java -version
java version "1.6.0_13"
Java(TM) SE Runtime Environment (build 1.6.0_13-b03-211)
Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02-83, mixed mode)
%
で確認してみてください。Java アプリケーションで最初のパスに入っている java コマンドを使う場合にはこれで動くようになりますね。

NetBeans で使う JDK を設定するには

Mac OS X の NetBeans 6.7 では一つ重要な変更があります。気付いた方もいるかもしれませんね。6.7 ではインストーラを使ってインストールした場合にも netbeans.conf には JDK のパスを設定しないようになりました。NetBeans 6.5.1 までは JDK5 のパスが設定されていましたね。これはバグ 159846 で議論されています。

インストール直後の netbeans.conf です。このように netbeans_jdkhome はコメントアウトされています。
# Default location of JDK, can be overridden by using --jdkhome <dir>:
#netbeans_jdkhome="/path/to/jdk"
このバグ修正によって NetBeans で使う JDK はデフォルトの JDK に追従することになりました。JDK6 を使いたい場合は Java Preferences で変更すればよいことになります。Java Preferences の設定と違う JDK を指定したい場合は netbeans.conf ファイルを編集して直接指定します。詳細は ユーザーFAQ の「NetBeans 起動時に JDK を指定できますか?」と「起動パラメータを永続的に設定するにはどうしたらよいですか?」を参照してください。
netbeans_jdkhome="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"
NetBeans 6.5.1 までを使っているのであればここをコメントアウトすればいいですね。NetBeans でどの JDK が使われているか確認するにはメニューの「NetBeans」>「NetBeans について」で確認してください。

Mac JDK

しかし、 Java Preferences で指定してもその JDK を使ってくれない場合があるようです。

知らないうちに別々の JDK を使ってしまうことがある

NetBeans は外部の Java アプリケーションを実行する時には、ほとんどの場合は JDK の場所を指定して(渡して)実行します。NetBeans が JDK6 を使っていれば、そこから起動されるものも同じ JDK6 を使うようにします。ただし、いくつかはそうでないものがあるようです。GlassFish V2 は独自に JDK の設定を持っていますね。実際 NetBeans インストーラでインストールした GlassFish V2 には JDK5 が <GlassFish V2>/config/asenv.conf に指定されています。
AS_JAVA="/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home"
これにより NetBeans 6.7 では NetBeans と GlassFish で使う JDK が違うため、エンコーディングの不一致が起こり日本語が化けしてしまうことがあります。GlassFish は UTF-8 でログを出しているのに、NetBeans はそれを SJIS で読み込もうとしてしまうのですね。この場合は GlassFish の設定ファイル <GlassFish V2>/config/asenv.conf を編集して、JDK6 を使用するようにします。
AS_JAVA="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"

また環境変数 JAVA_HOME を見ているアプリケーションもあるようです。環境変数を設定するには ~/.MacOSX/environment.plist というファイルを作りそこに記述します。
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>JAVA_HOME</key>
        <string>/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home</string>
    </dict>
</plist>
さて、これで Mac OS X で JDK6 を使うように変更できました。次回はちょっとやっかいなエンコーディングの問題について書いてみたいと思います。

関連するエントリ:

Sunday Jun 21, 2009

Java for Mac OS X 10.5 Update 4 がリリースされていますね。Mac ユーザーでアップデートした方も多いのではないでしょうか。
ただ私が知っている限り NetBeans 側でこれによって動かなくなったところが3件あります。
  • 167139 : Tomcat に配備できない
  • 167240 : JDK5 を使っている時に新規プロジェクトを作成できない
  • 167244 : JDK5 を使っている時にヒープダンプを開くことができない
これらのバグは NetBeans 6.7 RC3 後に修正されていますが、6.5 や今の 6.7 の RC ビルドを使っている場合は、問題が発生する可能性がありますので注意が必要です。簡単な回避策を付け足しておきますが詳細はバグレポートをご覧下さい。

167139 : Tomcat に配備できない

回避策:
以下のオプションを指定して起動します。
-J-Djava.io.tmpdir=/var/tmp
NetBeans の起動オプションは <インストールディレクトリ>/etc/netbeans.conf の netbeans_default_options に記述しておけます。詳細は FAQ の「起動パラメータを永続的に設定するにはどうしたらよいですか?」をご覧下さい。

167240 : JDK5 を使っている時に新規プロジェクトを作成できない

例外:
java.lang.NoClassDefFoundError: javax/script/ScriptEngineFactory
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        ...
回避策:
JDK6 を使います。下の回避策を参考にしてください。もう一つの回避策はこのバグが直るまで AppleScriptEngine.jar を削除しておくことです。もちろんこれは正式な対処策ではありませんので自己責任でお願いします。

167244 : JDK5 を使っている時にヒープダンプを開くことができない
例外:
org.openide.util.RequestProcessor$Item: task failed due to: java.lang.NoClassDefFoundError
        at org.openide.util.RequestProcessor.post(RequestProcessor.java:267)
        at org.netbeans.modules.profiler.heapwalk.ui.OpenHeapWalkerAction.actionPerformed(OpenHeapWalkerAction.java:61)
        at org.openide.awt.AlwaysEnabledAction.actionPerformed(AlwaysEnabledAction.java:115)
        ...
この問題は私自身は再現できませんでした。

回避策:
JDK6 を使います。使用する JDK の切り替え方法は FAQ の「NetBeans 起動時に JDK を指定できますか?」を参照してください。JDK6 は、
/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home
にインストールされています。

もしこの他でアップデート後に問題が発生するようになったところがあればコミュニティーまでお知らせ下さい。
関連するエントリ:

Wednesday Jun 17, 2009

Java for Mac OS X 10.5 Update 4 がリリースされています。ダウンロードやアップデートの詳細は以下をご覧下さい。Java6 は 1.6.0_13 になります。
NetBeans Profiler ブログを見て知ったのですが VisualVM が含まれているようですね。残念ながら英語なんですが ^^;)
VisualVM for Mac
% jvisualvm
で起動してください。

Monday Jun 01, 2009

NetBeans で Javadoc を使用する箇所はいくつかあります。src.zip さえがあれば動くもの、javadoc を別途指定しないと動かないところもあります。以下にまとめてみました。JDK の javadoc について書いていますがライブラリについても同じだと思います。「-」は使えない、「○」は使える、です。間違いがあれば指摘してください。

機能
起動方法
src.zipあり
(通常は設定済み)
javadocあり
ブラウザで参照
ヘルプ>Javadoc 参照 -

Javadoc を検索
ヘルプ>Javadoc 索引検索 -
Javadoc ウィンドウ
ウィンドウ>その他>Javadoc ○(優先)
ドキュメントウィンドウ
コード補完時 ○(優先)
Javadoc をブラウザで表示
エディタ上で「Javadoc を表示」 -

本来 src.zip はソースを参照する場合に必要です。「ナビゲート」>「ソースへ移動」でソースにジャンプできます。通常 JDK の src.zip は自動的に設定されるのでここは特別設定する必要ありません。

NetBeans Javadoc

この JDK の src.zip さえあればエディタ上のドキュメントウィンドウや Javadoc ウィンドウで Javadoc を表示することができます。ただし、この src.zip は英語なので Javadoc は英語になります。別途 JDK の日本語 javadoc を指定した場合にはそちらが優先され内容も日本語になります。両方設定してある場合は javadoc のほうが優先されるわけですね。ですので日本語で使う場合には日本語の Javadoc を用意しましょう。
からダウンロードできます。「ツール」>「Java プラットフォーム」で追加します。Javadoc タブで zip を指定します。Java6 の場合は jdk-6u10-docs-ja.zip です。

NetBeans Javadoc

日本語の javadoc を設定しておけば、コード補完時に出るドキュメントウィンドウが日本語になったり、

NetBeans Javadoc

下に出る Javadoc ウィンドウ (ウィンドウ>その他>Javadoc で起動) も日本語になったり、

NetBeans Javadoc

Javadoc の検索 (ヘルプ>Javadoc 索引検索で起動) が出来たり、

NetBeans Javadoc

ブラウザで Javadoc を参照 (ヘルプ>Javadoc 参照で起動) できます。

NetBeans Javadoc

Friday May 01, 2009

Ubuntu 9.04 を VirtualBox に入れてJDK をインストールしてみました。次に NetBeans を入れてみましょう。
$ sudo apt-get install netbeans
で NetBeans 6.5 が入るのですが、残念ながら英語版しかないようですね。NetBeans 6.5.1 の Linux 版をダウンロードして入れてください。あるいは NetBeans 6.7 Beta を入れて、日本語ユーザーテストプログラムに参加しちゃうと素敵かもしれませんよ ^^)



関連するエントリ:

Tuesday Apr 28, 2009

Ubuntu 9.04 を VirtualBox にインストールしました。Java の開発環境を整えてみましょう...なんですが、そういえば Ubuntu 8.04 の時も書きました。やり方は同じですね ^^;)
これとバージョンが違うくらいですが、やってみましょうか。

javac を実行してみます。以下のようにまだインストールされていないのでインストールしましょう。
$ javac
プログラム 'javac' は以下のパッケージで見つかりました:
 * openjdk-6-jdk
 * ecj
 * gcj-4.3
 * java-gcj-compat-dev
 * gcj-4.2
 * jikes-classpath
 * jikes-kaffe
 * kaffe
 * sun-java5-jdk
 * sun-java6-jdk
次の操作を試してください: sudo apt-get install <選択したパッケージ>
bash: javac: command not found
$ 
openjdk-6-jdk、sun-java5-jdk、sun-java6-jdk を入れてみます。
$ sudo apt-get install openjdk-6-jdk sun-java5-jdk sun-java6-jdk
JDK が3つ入っていることになりますね。update-alternatives でどの JDK を使うのか選択します。Sun の Java6 にしてみましょう。
$ sudo /usr/sbin/update-alternatives --config java

`java' を提供する 3 個の alternatives があります。

  選択肢       alternative
-----------------------------------------------
          1    /usr/lib/jvm/java-6-sun/jre/bin/java
*+        2    /usr/lib/jvm/java-6-openjdk/jre/bin/java
          3    /usr/lib/jvm/java-1.5.0-sun/jre/bin/java

デフォルト[*] のままにするには Enter、さもなければ選択肢の番号のキーを押してください: 1
'java' を提供するために '/usr/lib/jvm/java-6-sun/jre/bin/java' を使います。
$
java -version で確認してみます。
$ java -version
java version "1.6.0_13"
Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
Java HotSpot(TM) Client VM (build 11.3-b02, mixed mode, sharing)
$
よし、これで OK ですね。最新の Java6u13 がインストールできました。さてこれでちゃんと動くのでしょうか、確認しましょう。NetBeans をインストールしてからでもよいのですが、まずはこの状態で日本語が正しく表示されるかどうか確認しておきましょう。JDK のデモを使うのが簡単です。
$ sudo apt-get install sun-java6-demo
で、インストールして、
$ java -jar /usr/lib/jvm/java-6-sun/demo/jfc/SwingSet2/SwingSet2.jar
と実行してみます。
Ubuntu JDK
日本語も大丈夫なようですね!

メニューから Java プラグインの設定パネルを使って確認するという方法もありますが、これは GTK の L&F で上がってくるので、ほとんどの場合問題がありません。デモなどで Metal L&F で確認する必要があるでしょう。

Wednesday Apr 01, 2009

OpenSolaris で IPS 経由でインストールしたものではない JDK、つまり java.sun.com からダウンロードしてきた JDK だと日本語文字が四角(□)になってしまうという問題は、JDK6u12 で直っていたんですね、さっき気がつきました ^^;)

NetBeans on OpenSolaris

jre/lib ディレクトリには OpenSolaris 用の fontoconfig ファイル、fontconfig.OpenSolaris.bfc、 fontconfig.OpenSolaris.properties.src が用意されていました。よかったですね!

以下の NetBeans ユーザー FAQ も更新しておきました。

Wednesday Feb 18, 2009

JavaFX は NetBeans などの IDE で作業をするのが一般的で楽ですがコマンド行からもコンパイルやパッケージング、実行ができるんですね。以前 NetBeans の関係で調べていたことがありここに簡単にメモしておきます。

JavaFX のツール群

JavaFX SDK で提供されている主なツールは以下のようになっています。javafx は JDK でいうと java, javafxc は javac, javafxdoc は javadoc というように JDK とだいたい同じです。

javafx
JavaFX アプリケーションの実行
javafxc
JavaFX ファイルのコンパイル
javafxdoc
JavaFX のソースから HTML 形式でドキュメントを生成
javafxpackager
JavaFX アプリケーションを配備用にパッケージング
アプレット用 HTML, Web Start 用 jnlp の生成

JavaFX SDK のインストール場所

コマンドは JavaFX SDK をインストールしている場所の bin/ ディレクトリ以下にあります。NetBeans のプラグイン経由でインストールした場合はユーザーディレクトリ以下か、NetBeans のインストールディレクトリの javafx2 クラスタ以下にありますので探してみてください。

プラットフォーム
SDK の場所(デフォルトのインストールオプションの場合)
Mac OS X
SDK をインストールした場合:
  • /Library/Frameworks/JavaFX.framework/Versions/Current
    (/usr/bin にリンクされます)
NetBeans からプラグインをインストールした場合:
  • <ユーザーディレクトリ>/javafx-sdk
  • <NetBeans インストールディレクトリ>/javafx2/javafx-sdk
Windows
SDK をインストールした場合:
  • C:\Program Files\JavaFX\javafx-sdk
NetBeans からプラグインをインストールした場合:
  • C:\Users\<ユーザー>\.netbeans\6.5\javafx-sdk
  • C:\Program Files\NetBeans 6.5\javafx2/javafx-sdk

ドキュメントは docs/ 以下にあります。ここでは簡単に説明するだけですので詳細は SDK に付いている各ツールのドキュメントを参照してください。

javafxc - JavaFX ソースをコンパイル

まずコンパイルしてみましょう。javafxc コマンドにソースファイルを指定します。javac コマンドと同じですね。
% javafxc javafxapplication/Main.fx
例えば、パッケージ javafxapplication に Main.fx があるとします。
% ls javafxapplication/
Main.fx
以下のようにファイルを指定します。
% javafxc javafxapplication/Main.fx
クラスファイルは何も指定しないとソースファイルと同じ場所に作成されます。
% ls javafxapplication/
Main$Intf.class        Main.fx      Main.class
%

javafx - JavaFX アプリケーションを実行

次に生成されたクラスを実行してみます。javafx コマンドは基本的にはクラスパスなどの設定を行なった後に java コマンドをキックしています。

先ほどコンパイルしたディレクトリから Main クラスを指定して実行します。別のディレクトリでは -cp オプションを付けてクラスパスを指定します。
% javafx javafxapplication.Main
jar ファイルの実行は javafxpackager で説明します。

javafxdoc - JavaFX ドキュメントを生成

javafxdoc を使ってドキュメントを作成してみます。この例では出力先のディレクトリに /tmp/javafxdoc を、ソースのあるディレクトリに DisplayShelf/src、そしてパッケージを指定しています。
% javafxdoc -d /tmp/javafxdoc -sourcepath DisplayShelf/src displayshelf
以下のようなドキュメントが生成されます。index.html を開いてみてください。
JavaFX Documentation
javafxpackager - 配備用にアプリケーションをパッケージング

javafxpackager はソースをコンパイルするだけでなく、特定のプロファイルにもとづいてアプリケーションの jar やアプレット用の HTML ファイル、Web Start 用の jnlp ファイルを作成してくれます。現在サポートされているプロファイルは desktop か mobile です。JavaFX 1.0.1 までは -encoding オプションが用意されていなかったため、javafxpackager をそのまま使っている NetBeans ではエンコーディングの指定ができませんでした。以下は簡単な例です。
% javafxpackager \
        -src src \
        -d /tmp/dist \
        -appName DisplayShelf \
        -appVendor 'JavaFX Samples Team' \
        -appWidth 600 \
        -appHeight 300 \
        -appClass displayshelf.Main \
        -encoding UTF-8  \
        -p desktop \
        -draggable
ここで使っているオプションをあげておきます。

オプション
説明
-src
-sourcepath
ソースのあるディレクトリのトップを指定します。
src/<パッケージ名>/... の構成では src からを指定します。
-d
-destination
出力先を指定します。デフォルトは実行したディレクトリ以下の ./dist になります。
-appName
デフォルトのアプリケーション名を指定します。
-appVendor
デフォルトのアプリケーションベンダー名を指定します。
-appWidth
アプレットの幅を指定します。
デフォルトは 200 ピクセルです。
-appHeight
アプレットの高さを指定します。
デフォルトは 200 ピクセルです。
-appClass
main を含むクラスを指定します。この引数は必須です。
-encoding
ソースファイルのエンコーディングを指定します。
指定しない場合は実行している環境のエンコーディングになります。
-p
-profile
JavaFX のプラットフォームを指定します。
現在サポートされているプロファイルは desktop か mobile です。指定しない場合は desktop になります。
-draggable
ブラウザからドラッグ可能なアプリケーションにします。

パッケージングされたアプリケーションを実行

プロファイルを desktop で javafxpackager を実行すると次のファイルが生成されます。<アプリケーション名> には -appName オプションで指定した名前が入ります。

<アプリケーション名>.jar アプリケーションの jar ファイル
<アプリケーション名>.html アプレット用 HTML ファイル
<アプリケーション名>_browser.jnlp ブラウザ JNLP ファイル
<アプリケーション名>.jnlp Java Web Start JNLP ファイル

Java Web Start で起動するには jnlp ファイルをブラウザで開くか javaws を使って実行できますね。
% javaws /tmp/dist/DisplayShelf.jnlp
JavaFX
アプレットもブラウザで開けばいいですね。
JavaFX
普通にスタンドアロンのアプリケーションで実行するには javafx コマンドを使って、-cp で jar を指定し、メインクラスを指定します。
% javafx -cp /tmp/dist/DisplayShelf.jar displayshelf.Main
のようにすれば実行できます。
JavaFX

Thursday Dec 25, 2008

もう一つルック&フィールネタです。 ほ〜これは知りませんでした、NetBeans 6.5 では短い名前で L&F が指定できるのですね。以下の Wiki には詳しく書かれています。
短縮名では以下が使えるようです。
  • Windows - com.sun.java.swing.plaf.windows.WindowsLookAndFeel
  • Metal - javax.swing.plaf.metal.MetalLookAndFeel
  • GTK - com.sun.java.swing.plaf.gtk.GTKLookAndFeel
  • Nimbus - com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel
  • Aqua - apple.laf.AquaLookAndFeel
Nimbus を使うには簡単に
$ netbeans --laf Nimbus
でよいということになります。Java SE 6 Update 10 以降では Nimbus は JDK に入っていますので Windows でも簡単に Nimbus な NetBeans を楽しむことができますね。



OpenSolaris や Ubuntu などの Linux では NetBeans は Java SE 6 Update 1 以降 GNOME 環境では GTK L&F を使います。OpenSolaris ではデスクトップのデフォルトテーマが Nimbus なので GTK L&F でも NetBeans は見た目 Nimbus になります。OpenSolaris のデスクトップは美しいです。

Thursday Nov 27, 2008

JDK に NetBeans 6.5 が付いているのか、NetBeans 6.5 に JDK が付いているのか、これ一つで Java の開発環境を整えてくれるインストーラも公開されています。 これから Java を勉強しようと思っている方、新しいマシンに最新の Java と NetBeans を入れようと思っている方、こちらを使うと1回でインストールが済みます。Windows, Linux, Solaris 版が用意されています。ただし Java SE (Java, GUIエディタ, NetBeans プラグイン開発環境) の開発機能しか含まれていませんので追加のコンポーネントをインストールするには、 どちらかの方法でインストールする必要があります。

Thursday Oct 23, 2008

Java SE 6 Update 10 がリリースされました!新機能、変更点については ogino さんのブログが詳しいです。以下からダウンロードできます。
さて今回ももちろん NetBeans とのバンドルインストーラを用意しています。Update 10 と NetBeans を同時にさくっとインストールしたい方にもってこいです。

Monday Aug 18, 2008

Windows XP に NetBeans 6.5 Beta をインストールして日本語化してみます。日本語 zip ファイルは単に jar ファイルのかたまりなので他のプラットフォームでも方法は同じです。NetBeans のインストールディレクトリに展開してください。スクリーンショットを撮りながらやってみます。

1. JDK がインストールされていない場合は JDK をダウンロード、インストールします。

2. NetBeans 6.5 Beta をダウンロード、インストールします。

ダブルクリックでインストーラを起動します。インストーラはすべて含まれる「All」を選びました。



インストーラの開始画面です。インストールするコンポーネントをカスタマイズする場合、例えばデフォルトでは Tomcat はインストールしない設定になっていますので、カスタマイズボタンを押して Tomcat のチェックボックスにチェックを入れてください。



License Agreement の Accept にチェックを入れて次の画面に進みます。



NetBeans のインストール先と JDK のインストール場所を指定します。JDK の場所はたいていの場合は自動的に検出してくれます。ここはデフォルトの値で問題ないでしょう。



GlassFish V2 のインストール先を指定します。ここもデフォルトの値で問題ないでしょう。



GlassFish V3 のインストール先を指定します。ここでも通常はデフォルトの値で問題ないでしょう。



インストール情報のサマリが表示されるので内容を確認します。問題なければ Install ボタンを押しインストールを開始します。





インストール完了画面です。インストールが無事終わりました。エラーなど問題があった場合にはこの画面にエラーが表示されます。問題なければ Finish ボタンを押しインストーラを終了します。



3. 日本語 zip ファイルをダウンロードし展開します。



ダウンロードした zip ファイルで「すべて展開」を選びます。



展開先には先ほどインストールした NetBeans のインストール先を指定します。この場合は「C:\Program Files\NetBeans 6.5 Beta」です。



4. NetBeans を起動します。

さて準備ができたので NetBeans を起動してみます。アイコンをダブルクリックします。



以下のようにスプラッシュ画面のメッセージが日本語になったら成功です。



1点注意ですが、1度英語環境で NetBeans 6.5 Beta を起動したことのある場合はユーザーディレクトリを1度消してください。英語環境の NetBeans の起動後に日本語の NetBeans を起動してユーザーディレクトリを共有することはサポートされていません。予期しない問題が発生する可能性があります。

ユーザーディレクトリは通常ホームディレクトリの .netbeans/6.5beta にあります。Windows XP の場合は C:\Documents and Settings\<ユーザー>\.netbeans\6.5beta になります。わからない場合は NetBeans を起動して「ヘルプ」>「製品について」で確認してください。

ユーザーディレクトリに関しての FAQ もありますのでそちらも参考にしてください。

This blog copyright 2009 by katakai