ついに恐れていたことが起きました。NetBeans4.0リリース!「はじめてのNetBeans」で扱った3.6とはかなり違ったものになってしまいました。この本はまたNetBeans3.6の特徴的なところを前面に押し出しただけに,そのくじかれぶりもかなり強いものがあります。ここでは,すでに本をお買い上げくださった方,NetBeans4が出たらしいがこの本でダイジョブなのかなとお考えの方,のために,
本の内容をNetBeans4で実践する際の変更方法,
実践できなくなっちゃったからゴメン!というところ
などを,早急に御紹介したいと思います。
なんでNetBeans.JPの著者サポートページに書かないかって?だってレイアウト複雑でむづかしいんだもんあそこの文書書くの!男は(主婦だって)黙ってプレーンテキストダッ!D****W*****の思い切り持ち腐れでゴメヌ,マ**メ****さん!
このサポートページへの御質問はnoniko@netbeans.jpまでネ。「主婦電」用メールアドレスでもいいんですが,すぐネットビメールとわかるので。
12月16日時点では,日本語の部分が文字化けする!
マウント機能について
NetBeans4のウィンドウについて
クラスファイルの位置について
外部のWebモジュールを利用する方法について
ZaurusとNetBeansの連携について
アーカイブのマウントについて
JARレシピについて
CVSについて
実行時引数,作業用ディレクトリの設定について
アプレットの実行について
Webアプリケーションの作成について
Antの実行について
Chapter4の実践について
Chapter5の実践について
Jakarta Strutsの実践について
Apache Axisの実践について
Castor XMLの実践について
NetBeans4(以下NB4)ももちろん,日本語版が出ます。近日。しかし,今英語版を使ってみたかた,特にWindowsで「マイ ドキュメント」など日本語のディレクトリ名が白い四角に化けっちまってるんじゃあないでしょうか。タイヘン申し訳ありません(営業だ)。とりあえずの回避策として以下のことを行ってください,いやいただけませんでしょうか。
これで,ルックアンドフィールがOSに依存せず全てJavaで管理されるため(だと思います,たぶん)日本語がまともに表示されるはずです。ちょっとショボいルックになるけど。
「NetBeansの最大の特徴」と言っていたマウント機能ですが,一見なくなってしまいました。以下NB4でメニューバーから「ファイル」を選ぶと,「ファイルシステムのマウント」がない!「新規プロジェクト」って何かEclipseやJBuilderみたい・・・でも,その機能は実は隠れているのです。
NB4では,まず適当な場所にプロジェクトディレクトリを作って,そこにパッケージディレクトリを作ります。NB3.6では,マウントしたディレクトリの下にパッケージディレクトリを作りました。まずはそれが違います。
NB4でのChapter2の実践の仕方は,以下の通りです。
NetBeans3.6では,プロジェクトのファイル構造は全て「ファイルシステム」ウィンドウにありました。
NetBeans4では,プロジェクトのファイル構造が一変しました。プロジェクトを新規作成すると,プロジェクトフォルダ内には「nbproject」というディレクトリが生成され,そこにウワサのAntスクリプト他プロジェクトの設定ファイルが置かれます。
しかし,特別な使い方をしようとするのでなければ,これらの設定ファイルはユーザが意識しなくてもよいものです。
一方,ソースファイルはsrcフォルダ,コンパイル生成物はbuild/classesフォルダに置かれます。
このとき,imgなどの独自フォルダを作りたい場合は,srcフォルダの下に作ってください。そうすれば,コンパイル時にこれらのフォルダもbuild/classes下にコピーされ,リソースの相対位置は保たれます。
「Project」ウィンドウは,プロジェクトのフォルダやファイルのうち,ユーザが実際にコードを書いたりリソースを置いたりする「src」フォルダを「Source Packages」として表示します。これと,「Test Packages」は,より強化された(らしい)JUnitテスト関係のファイルを置く場所ですが,「はじめてのNetBeans」ではJUnitについてあまりやらなかったので,これについてはNetBeans4専用の解説をどこかで(ウェブかな〜本かな〜)改めて始めさせていただいたときに回したいと思います。
「Project」ウィンドウで隠されていた,プロジェクトフォルダの全ての中味を見るには「Files」ウィンドウに切り替えます。
さらに,参考フォルダなどプロジェクト以外のフォルダは,「Favorite」ウィンドウに切り替え,そこにお好みのフォルダを登録することで,OSのファイルブラウザを立ち上げなくても操作できるようになりました。この「Favorite」ウィンドウはNBの最初の起動時には出てきませんので,メニューバーから「Window」->「Favorites」を選択して表示させます。
「Project」以外のウィンドウでは,「プロジェクトに対する操作」はできませんが,個別の実行ファイルを「実行する」などということはできます。あまり「プロジェクト全体」のことは関係なく,むしろ画像や参考フォルダ・ファイルを見ながら作業したい場合は,「Files」や「Favorites」ウィンドウを使って作業する,という方法もあります。
(Chapter2 36ページに関連)
NetBeansでは長年,ソースファイルをコンパイルすると,クラスファイルはソースと同じ位置にできていました。NB4から,上記しましたようにクラスファイルは別の場所にできるようになりました。これはおそらくいいことなんだろうと思います。しかし,俺は絶対ソースとクラスを同じ場所に置きてェんだ,という方もおられるかも知れません。
とりわけ,「Java Projectwith Existing Sources」を利用する方。このソースファイルはネットワーク越しにでも設定できますが,プロジェクトフォルダをソースフォルダから離れた場所に作成した場合,ネットワークの切断などでソースとクラスが泣き別れになってしまうのは困りますね。
これは対処できます。「nbproject」フォルダ中のNetBeansの設定ファイルを編集するのです。詳細を別ページに掲載してありますので,御参照ください。
(Chapter2 38ページに関連)
NB3.6では,外部のTomcatのwebappsフォルダ中のものなど,外部のWebモジュールを利用するのも「マウント」でした。う〜んなつかしいなァ・・・と郷愁にくれているヒマァありませんね。NB4でこれを利用するには,以下のようにします。
1)外部のWebモジュールをTomcat5で使用する場合
2)旧バージョンのTomcatのためのWebモジュールを編集する場合
(Chapter2 38ページに関連)
できました。ただし苦労しました。より詳細な説明が別ページに掲載してあります。
(Chapter2 41ページに関連)
グググ。これがNB4で(今のところ)失われた機能です。
素晴らしい機能だったなァ・・・
1.については,NB4ではプロジェクトごとにクラスパスを指定する必要があります。「Projects」ウィンドウで,プロジェクトのノードを右クリックして「Properties」を選択,プロジェクトのプロパティを表示させます。この辺もJBuilderやEclipseに近いインターフェイスになったと思います。
「Properties」ウィンドウの左側のリストから「Build」->「Compiling Sources」を選びます。すると右側に「Classpath
for Compiling Sources」という欄が見えますね。「Add JAR/Folder」をクリックすると,ファイル選択ウィンドウが立ち上がりますから,お好みのjarファイルを探して指定します。
2.については・・・うまく設定ファイルを編集すれば,できるような気がするんですが・・・筆者ただいま検討(健闘)中です。
とりあえず苦肉の策は作りました。ただし3.6の場合に比べてだいぶ不器用です。こちらを御覧いただければと思います。
JSRレシピというものは,NB4ではなくなりました。しかしご安心ください,JavaプロジェクトやWebプロジェクトを「Build」するとそのつど配布用のjarファイルができます。このjarファイルは「Files」ウィンドウからプロジェクトの「dist」ディレクトリ中に探すことができます。
NB3.6では,ローカルのレポジトリを利用する場合を除いて,別途コマンドライン等でチェックアウトしたモジュールに対してしか操作を行えませんでした。しかし,NB4では外部のレポジトリからのチェックアウトやインポートも,IDEのメニューから行えるようになりました。
別ページにWindowsに外部からCVSやSSHのソフトをインストールしてかつNB4でチェックアウトを行ってみた報告が掲載してあります。ちと,クドい読みものになっておりますが,御勘弁。
しかし,「マウント」という考え方が廃止されたため,その管理はちと複雑になっています。すなわち,チェックアウトしたあとそのモジュールをソースフォルダとして,「Java Projectwith Existing Sources」をひとつ作る必要があります。
これらバージョン管理されたファイルの編集は「Project」ウィンドウもしくは「Files」ウィンドウから行え,る,はずですがためにソースエディタ上で編集ができなくなったり,イマイチ,不安定です(12月16日の段階)。
さらに,リモートレポジトリへの「コミット」も,ステータスウィンドウがいつまでたっても実行中のままで途中でストップボタンを押して中断したが,レポジトリを参照してみると実はコミットできていたりやっぱりできてなかったり,などということもあり,まだ波乱含みのようです。安心して使えるように早くバージョンアップをしてもらいたいものです。
NB4ではNB3.6のように「ツール」->「オプション」で立ち上げたオプション設定ウィンドウから,「実行」を設定することはできなくなりました。そのかわり,プロジェクトの「Properties」ウィンドウで実行時引数及び作業用ディレクトリの設定を行います。
「Project」ウィンドウで,該当プロジェクトのノードを右クリック,「Properties」を選びます。
「Properties」ウィンドウが起動したら,左側のリストから「Run」->「Running Project」を選択します。
この状態で,右側のリストのArguments, Working Directory 欄に入力することにより設定が行えます。デフォルトでは作業用ディレクトリはプロジェクトディレクトリの直下(build.xmlファイルやnbprojectフォルダと同等の階層)になっています。
NB4でのアプレットの作成に関してひとつ重要なことがあります。それは,アプレットを作るプロジェクトは「Java Application」ではなく「Java
Class Library」に設定しなければならない,ということです。そうでないと,作成したアプレットを「実行」するコマンドが有効にならないのです。
二つとも同じような構造のプロジェクトに見えるし,どちらでも実行できるようにしたって減るもんじゃねえだろうと筆者も思うのですが・・・仕様,ということで御勘弁ください。
「Java Class Library」のプロジェクトを作成したら,あとはこれまでと同様の方法です。新しいパッケージを作成し,そのノードを右クリックして「New」->「File/Folder」を選択します。
「Categories」リストに「Java Gui Forms」というノードがあります。それ自身を選択すると右側の詳細リストに「JApplet」,そのノードを開いてさらにその下の「AWT
Forms」ノードを選択すると右側の詳細リストに「Applet」が現れます。いずれも三JavaのマスコットDukeのアイコンが表示されるのでわかりやすいでしょう。
アプレットの編集はNetBeans3.6と同様GUIエディタで行えます。
実行は,「Project」ウィンドウあるいは「Files」ウィンドウで,該当するファイルのアイコンを右クリックして「Run Files」を選びます。AppletViewerによる実行ができます。
アプレットを表示させるためのHTMLファイルもNB3.6と同様自動生成してくれます。プロジェクトをビルドしてください。ただし,生成されたHTMLファイルは「Project」ウィンドウからは見えません。「Files」ウィンドウで,プロジェクトフォルダの下「build」フォルダを開けてみてください。「classes」フォルダと同階層に見つかります。
この方法では,アプレットを実行するためのブラウザは選択できません。Internet ExplorerやMozillaなどのWebブラウザで実行させるためには,Webプロジェクトを作ってJSPファイル中にアプレットを呼び出す記述をする必要があります。それについては後日・・・
NetBeans4.0では「Web Application」「Web Project with Existing Source」などのプロジェクトを作成できます。Chapter 3の実践に関しては, 以下のようにしていただけます。
新規プロジェクト作成ウィザードで,左のリストから「Web」,右の詳細リストから「Web Application」を選択します。
「webmodone」Webモジュールを作成する場合,プロジェクト名を「webmodone」,Project Locationを「nbref」にします。
するとコンテキストパスもwebmodoneに設定され,Webモジュールの出来上がりです。
あとは,本書の方法が適用できます。
ただしNB3.6で「全てのテンプレート」を選ぶところは,NB4では「File/Folder」を選ぶことになります。
本ページの「外部のWebモジュールを利用する方法について」->1)外部のWebモジュールをTomcat5で利用する場合 の通りにしてください。
(Chapter3 97ページに関連)
・・・・NB3.6で,「ファイルシステム」ウィンドウからマウス操作によってほとんどのコード作成を行えたAntの編集機能は,今のところNB4では全くさみしいものになってしまいました。ソースエディタ上で,フツウのxmlファイルとしての補完機能がまあまあ利用できる,といった程度です。100ページから108ページまで書きまくった内容をどうしてくれるのヨ,キーッといいたい筆者ですが,こうした機能は今後モジュールとして供給されるのではないか,というウワサがありますので,朗報を待ちたいと思います。
・・・まあ,「ソースとクラスを別ディレクトリに」という目的そのものは,すでにNetBeans4.0自体がそうなっているので・・・
華麗でグラフィカルなAntの編集機能は今のところつかえませんが,Antファイルの作成と実行は,本書の方法で行えます。
喜ばしいことに,Chapter4は以下に示す一部の操作と,方法の変わった「JUnitテストケース」及び「プロパティファイル」の部分以外は,本書の方法でNB4.0でも実践していただけます。
さて,では上記の部分について説明いたしましょう。
本章ではインターフェイスを実装するクラスを作成する部分があります(Chapter4, 124ページ)。このとき図4-2-23のように,実装すべきメソッドを示してくれる便利な機能はNB4ではなくなってしまいました。
しかし,これは3.6のときからあった機能のようですが,以下のような操作でカバーできるでしょう。
「プロジェクト」ウィンドウで,作成中のクラスのノード(たとえばHorse.javaノード)を右クリックして「Tools」->「Override Methods」を選びます。
すると,オーバーライドもしくは,実装できるメソッドの一覧が現れます。インターフェイスMusicianを実装するHorseの場合,この一覧からメソッド「play()」を選びます。以後,もっと複雑な名前の抽象メソッドをたくさん実装しなければならない場合にも,これでイケるでしょう。
これは,すでにNetBeans3.6用のプログラムを作ってしまった方も,いさぎよくスキップして適当なプロジェクトを新規作成されたほうがよさそうです。仕様があまりにも変わっているからです。
新規「Java Application」プロジェクトを作成したら,本書のTestOne.javaはプロジェクトの「Test Packages」下に作成します。
まず,「Test Packages」下にパッケージ「ju」を作成し,この「ju」パッケージノードを右クリックして「New」->「File/Folder」を選択します。
新規作成ウィザードで,左側のリストから「JUnit」を選択し,右側の詳細リストから「Empty Test」を選択します。
名前をTestOneにすれば,「Test Package」下にTestOne.javaが作成されます。
あとは,これを本書の通り編集します。
実行は,このファイルのノードを右クリックして「Run File」を選びます。
(Chapter4, 152ページに関連)
プロパティファイルを作成した場合,NetBeansのエディタにおけるその表示法は,元来のテキスト形式と,本書155ページ図4-5-10のように,一覧表の形式があります。
NetBeans3.6では後者の一覧表形式が優先表示されましたが,NB4では逆になりました。
プロパティファイルのノードを ダブルクリックすると,テキスト形式が表示されます。
一覧表形式を表示させたい場合は,プロパティファイルのノードを右クリックして「Open」を選びます。「Edit」を選ぶと,テキスト形式です。どちらも編集可能です。
なんと!て驚くのが何か悲しいですね。Chapter5はまるまる,NB4でも実践できました。
(Chapter6 197ページに関連)
これも非常に残念なことですが,198ページ図6-2-3に見られるように,struts-blank.warファイルを「右クリックでアンパック」という機能はなくなってしまいました。
しかし,このような方法で,NetBeans4上で展開することができます。
適当な場所に置いたstruts-blank.warファイルを「Favorites」ウィンドウに追加します。「Favorites」ウィンドウについては,「NetBeans4のウィンドウについて」を御覧ください。
このノードを開くと中味が現れます。
中味を全部(struts-blank.warそのものではなくその中味をひとつひとつです)選択して右クリック,「コピー」を選びます。
同じく「Favorites」ウィンドウ上に「nbref」を追加します(追加しておくと何かと便利です)
そこに「strutswork」フォルダを作成します。
今コピーしたものをその下にペーストします。
こうしておいて,この「strutswork」をソースフォルダに「Web Project with Existing Source」を新規作成します。
OSの展開ツールでヤッちまったほうがはええよ!とおっしゃる向きもあるかも知れませんが,ツールによっては「jar」は認識できても「war」は認識しないものもあるようですし,Windows2000には標準で展開ツールがついていないので,お役に立つかも知れませんヨ。
あとは本書の方法で実践できますが,Struts自体が現行は1.2になっていて,本書の1.1とまた仕様が変わったようで・・・それについてはとりあえず御容赦ください。
これは苦しいッ!かなり苦しいッ・・・しかし何とか苦し紛れに対応させた報告がコチラです。
いよいよ本書最後の6-3「Castor XML実践」の対応状況です。
これには,新規プロジェクトとして「Java Application」を作成します。名前はcastorworkにします。
Set as MainProject と,create Main classのチェックははずします。
まず,Castor XML及びXerces-Jのクラスライブラリファイルを,「マウント」する代わりに,プロジェクト「castorwork」のクラスパスに登録します。プロジェクト「castorwork」のプロパティウィンドウを出して,左側のリストで「Build」->「Compiling Sources」を選択,「Classpath for Compiling Sources」の欄に,必要なjarファイルをすべて登録します。
同じPropertiesウィンドウで,作業用ディレクトリを変更します。左側のリストで「Run」->「Running Project」を選択,「Working Direcory」の欄に「nbref/castorwork/src」を指定します。
XML文書を格納するxmlフォルダは,プロジェクト「castorwork」の「Source Packages」の下に作成します。
personprofile.xsdをNB4.0のテンプレートで作成すると,最初のタグの部分が図6-4-5と少し違っています。
これは,とにかく図6-4-6のように直してしまうのが得策です(値の変更だけでなく,削除する属性もあります)。
CastorのツールSource Generatorの実行は,上記のApache Axisと同様,なんとか苦し紛れにヤリます。
まず,castorworkプロジェクトのnbproject/project.propertiesファイルを開き,以下の追記をします。
main.sg=org.exolab.castor.builder.SourceGenerator
args.sg= -i xmls/personprofile.xsd -package ppwork
次に,castorworkプロジェクトのbuild.xmlにこのように書きます。これはbuild-impl.xmlに書いてある内容をコピーして編集したものです。
<target name="runsg" depends="init,compile" description="Run a main class.">
<j2seproject:java xmlns:j2seproject="http://www.netbeans.org/ns/j2se-project/1" classname="${main.sg}">
<customize>
<arg line="${args.sg}"/>
</customize>
</j2seproject:java>
</target>
プロジェクトをビルドしておきます。
新しいプロジェクトを作成します。新規作成ウィザードで,このプロジェクトの種類には「Java Project with Existing Ant Script」を設定し,次に進みます。
Locationにnbref/castorwork/nbscript,
Build Scriptにnbref/castorwork/build.xmlを指定します。
Project Nameにexeccastorwork,
Project Locationにnbrefを指定します(デフォルトが妙な指定になっていると思いますから注意して直してください)
そのあとは特に設定することなく完了まで進みます。
このexeccastorworkプロジェクトの「Properties」ウィンドウを出します。
左側のリストから「Build and Run」を選びます。
右側の設定欄で「Custom List Items」の設定をします。「Add」ボタンをクリックすると欄が追加されますから,そこに
Ant Target=runsg(欄をクリックするとコンボボックス化して選べます)
Label=Run Source Generator
と設定します。
そうして「Project」ウィンドウで,このexeccastorworkプロジェクトのノードを右クリックして,メニューから
「Run Source Generator」を選びます。
・・・本当に苦し紛れですね・・・
でも,これで「castorwork」プロジェクトの「Source Packages」下に「ppwork」パッケージ,そして本書で生成したようなJavaファイル群が生成するはずです。生成したら,このexeccastorworkの役目は終わりです。
あとはcastorworkプロジェクトに戻っての作業です。このppworkパッケージの下にGetPPDataとCreatePPDocを本書の通り作成します。
しかし,このNB4,NB3.6にくらべてコード補間がよくない上に,「パッケージorg.exolab....は存在しません」などと言いながら,ソースエディタ上にエラーの赤線を出しまくります。
しかし,プロジェクトをビルドすると,ちゃんと成功します。このバグは早く直ってもらいたいものです。
最後に,独自castor.propertiesファイルの作成は,castorworkプロジェクトの「Source Packages」直下に位置させます。「Project」ウィンドウでは「default Packages」というノードの下に表示されるはずです。
・・・以上,「はじめてのNetBeans」をNetBeans4.0に対応させる方法について,御紹介しました。
いかがでしょうか。中にはずいぶん苦しいのもありましたが,筆者も今必死になってバグ報告や,失われた3.6の機能を取り戻してもらえるようにアピールしていますので,次のバージョンではもっと対応状況が改善されるかも知れません。
こんなNB4ですが,これはこれなりに,また別の観点から非常に面白い使い方ができます。それについてはまた別の,なるべく早い機会に,是非御紹介したいと思っております。
2004年12月17日 清水 美樹