これまでは、原理の原点に立ち返るため、
手動にてコンソールコマンドを利用してJavaソースコードをコンパイルし、
手動にてjarファイルなども作成しました。
しかし、実作業において、そのようなことをすることはほとんど考えられません。
Eclipse/Pleiadesを利用して、
実際の開発手順をなぞってみましょう。
プロジェクトを作成してみましょう。
プロジェクト名自体はなんでもかいいませんが、「完了」を押さず、
「次へ」を押してください
ここで「ライブラリー」というタブがありますので、
秀丸のディレクトリにセッティングしておいた「hmJavaVM.jar」を選択しましょう。
「パッケージ・エクスプローラー」のペイン上で、「src」を選択し、
右クリックして、「新規」→「クラス」を選択し、新たなクラスを作成しましょう。
プログラミングの統合環境ですので、入力中は秀丸とは比べ物にならない
正確なインテリセンスが働くようになります。
コピペしてしまうのではなく、入力してみてください。
どのように入力補完が働くのか体感できます。
一番最初の、「import hidemaru.*」のところは、
ファイルを保存した瞬間に、Eclipseが自動的に「import hidemaru.Hm」へと書き換えるかもしれません。
ファイルを保存した瞬間に、自動的にコンパイルされ、
コンパイルに成功したら、「.class」ファイルが作られます。
javacを使った手動によるコンパイルは必要ありません。
出来上がった「MyClass2.class」をマクロから呼んでみましょう
そのまま同じマクロをすかさず実行してみると、
実行する度に、カウントが上がっていくのがわかります。
これは秀丸のマクロの実行が終了しても、JVMは生きており、
クラス定義も生きているため、処理が継続されているということです
このことはとても重要な性質となりますので念頭においておいてください。
プログラムを組む際に、「初期化」と「終了」をプログラムの中でしておく必要がある
、
ということです。
マクロの実行が終わったから、Javaのクラス定義や変数も全て破棄される、といったわけではありません。
「マクロを実行した該当の秀丸プロセス」を閉じると、初めて該当プロセスのJVMが破棄されます。
わかりやすく言うと、下のように秀丸で3つのファイルを開いているとして、
「a.mac」を開いた状態で、マクロを実行したとすると、この「a.mac」のタブに対応するプロセスにJVMが割り当てられます。
ですので、この「a.mac」タブウィンドウを「閉じる」と、JVMも破棄される、ということになります。
上のファイルをパッケージ版に変更してみましょう。
メニューよりパッケージを作成するにしてみます。
パッケージの名前はなんでもかませいません。
パッケージ・エクスプローラー上で、MyClass2.javaをmyPackTestの下へとマウスで「ズズズーっ」と
移動させます。
すると、移動しをえると、ソースが編集され、先頭に「package myPackTest;」の行が自動で追加されるはずです。
この状態でも、ファイルを保存する度に、クラスファイルが出来上がります。
(パッケージの位置関係も考慮された.class)
パッケージを.jarファイルにしてみましょう。
パッケージエクスプローラー上の「myPackTest」のパッケージ上で右クリックをして、
エクスポートをします。
.jarファイルの名前を適当に指定しましょう。
hmJavaVMでは、実行するマクロと同じディレクトリにある「.jar」は、
全て自動でクラス探索の対象となるため、.jarの名前は適当でかいません。
出来上がった、「.jar」ファイルを、実行するマクロと同じディレクトリに入れましょう。
マクロ(.mac)の方もパッケージに入った分、次のような修正が必要となるでしょう。
.jarのファイル名の指定は不要です。
それは、hmJavaVMが自動で読み込みます。
指定するのは、「パッケージ名」を付けることだけです。