最終更新日 2024-09-25

「hmJavaVM」と「秀丸・デバッグ出力モニター」

概要

hmJavaVMでのエラーを知るにはどうするのか、が掲載されています。

秀丸エディタ・デバッグ出力モニター

秀丸マクロのエラーは「ダイアログ」で表示されますが、
「hmJavaVM」については、根本的なよほどの深刻なエラー以外はダイアログでは表示しません。
(あえて出していません)

hmJavaVMでは、エラーは「秀丸・デバッグ出力モニター」に表示されます。

意図的に、秀丸エディタ・デバッグ出力モニターに出す場合

まずは、ベースとなる秀丸マクロファイルを作成します。
マクロファイルから呼び出せるJavaのメソッドの型の制限は、「こちら」で確認できます。
String配列に何か値を渡すことが出来るわけではありませんが、
main関数と形式を合わせておいた方が、何かと融通が利きやすいため、このようになっています。

MyFirstTest.mac
#JVM = loaddll( hidemarudir + @"\hmJavaVM.dll");
 
#_ = dllfuncw( #JVM, "CallMethod", "MyTest", "main");
 
freedll( #JVM );

Java側では、普段通りJavaファイルを作成してください。
Javaをコンパイルし、「.class」形式が出来上がったら、「MyFirstTest.mac」と同じフォルダに入れておきましょう。 「.class」形式は、「.jar」形式にしてもかまいません。

秀丸専用の関数群は「hmJavaVM.jar」内のクラスに定義されていますので、

又、下のソースを見てもわかるように、Javaからデバッグ出力モニターへと文字列を出す、「Hm.debugInfo」関数というのを特別に追加しています。

MyTest.java
import hidemaru.*;

public class MyTest {
 
    public static long main()  {
        Hm.debugInfo("Java側からデバッグモニターへ");

        return 1;
    }
 
}

コンソールコマンドでjavac
        javac MyTest.java -cp C:\usr\hidemaru\hmJavaVM.jar

といった具合にClassPathの指定が必要となります。

「C:\usr\hidemaru\hmJavaVM.jar」については、実際に該当の.jarがある場所を指し示してください。
(※Eclipseなど、統合環境を利用すれば、このような手順は不要となります。)