JExternalは、4DからJavaのメソッドを実行することを可能にするプラグインです。通常はデバッグ済みの
Javaメソッドを実行しますが、4Dからシームレスに(継ぎ目なく)デバッグすることも可能です。つまり4DからJavaのメソッドを呼び出したとき
に、自動的にJavaデバッガ−に制御が移り、そのJavaメソッドが終了したら、また4Dに戻るようにすることができます。これにより開発効率を高める
ことができます。
このためには、Metrowerks社のCodeWarrior
Macintosh版を使用しなければなりません。他の開発環境やプラットホームでは今のところできません。ここではCodeWarrior6
Macintosh版の使用を前提としていますが、バージョン6以前のCodeWarriorでも可能です。
まず、CodeWarrior6 Reference CDのThrill
SeekersフォルダにあるIMPORTANT(Mac Java
Debug).txtという文書に目を通してください。以下はこの文書に書いてあることとほぼ同じことを行います。(CodeWarriorと4Dをいっ
たん終了しておいてください。)
1)現在ハードディスクにインストールされているMetrowerks CodeWarrior
6.0:Metrowerks CodeWarrior:CodeWarrior
Plugins:DebuggersフォルダにあるSunJavaPluginとMetroNub
PluginとJavaSymbolicsを他のフォルダに退避する。
2)Reference CDのThrill Seekers:MetroNub Java
Debugger:INTO Metrowerks CodeWarrior:INTO CodeWarrior Plugins:INTO
DebuggersフォルダにあるMetroNub PluginとJavaSymbolicsを1)のフォルダにコピーする。
3)CodeWarriorで作成したJavaプロジェクトファイルを開き、ビルドし、結果として出力されたJarファイ
ル(この中に4Dから呼び出したいメソッドがある)を4Dのストラクチャファイルと同じフォルダ内にあるJavaClassesフォルダに移動する。
4)CodeWarriorのファイルメニューの「開く...」で3)のJarファイルを開く。デバッガが起動するので、
適当な箇所にブレークポイント設定する。
5)4Dストラクチャファイルを開き、4Dを実行する。JEX Call class method または JEX
Call object method が実行されるとCodeWarriorのデバッガに制御が移り、Javaコードがデバッグできる。
注意:5、6回デバッグしたら、一度CodeWarriorを終了してください。何度もデバッグしていると途中で
CodeWarriorがクラッシュします。
- [2007.11.08 加筆]
- Metrowerks社は、CodeWarriorの開発/販売を中止しました。Apple社Xcodeを利用した効率のいい、JExternalのためのJavaコードの作成/デバッグを紹介したページを設けました。そちらをご覧ください。