JExternal(販売終了)
2011.12.31
 

JExternalは、4D上でJavaメソッドを実行するためのプラグインです。Javaで書かれた各分野の豊富なライブラリーを4Dから利用することが可能になります。

"JavaClasses"フォルダの中の拡張子.jarファイルは、自動的にJavaクラスパスに登録され、その中のJavaメソッドは、4Dから実行可能になります。実行中のJavaメソッドが、4Dメソッドを呼び出すコールバック機能もあります。Javaメソッドは、4Dプロセスに対応したスレッドの中で実行され、複数のJavaメソッドの並列実行が可能です。

JExternalは、Javaバーチャルマシンを起動するプラグインJWorldとともに使用します

JavaClassesフォルダは、次のフォルダに配置することができます。

  1. JExternal_xxx.bundleのContentsフォルダ
  2. ストラクチャファイルがあるフォルダ
  3. アプリケーションファイル(4th Dimension、または4D Server)があるフォルダ
  4. 4Dフォルダ

上記の順番で、JavaClassesフォルダは探索され、最初に見つかったJavaClassesフォルダのみが採用されます。

4D ServerでJExternalを使用した場合、JExternal_xxx.bundleのContents内にJavaClassesフォルダを配置すると、そのフォルダ内のすべてのファイルは、自動的にクライアント側にダウンロードされます。


動作環境

現在のバージョンのJExternalは、Mac OS、Windows両プラットフォーム上のバージョン11以上の4th Dimention / 4D Server(32-bit)で動作します。

JWorldによって起動されるJavaバーチャルマシンが必要ですが、現在のバージョンのJWorldでは、内蔵されたJavaバーチャルマシンが使用できるため、改めてインストールする必要はありません。

プラグインメソッド

JExternalが提供するプラグインメソッドは、わずか4個です。その中でも主要なものは、次の2つのメソッドです。

JEX Call class method
Javaクラス(スタティック)メソッドを実行する
JEX Call object method
Javaオブジェクト(インスタンス)メソッドを実行する


これらのメソッドを使用すると、4Dのフィールド、変数、配列の値を、対応するJavaのタイプ/クラスに変換して、 Javaメソッドに渡すことができます。そして、Javaメソッドの結果は、対応する4Dタイプに変換されて、受け取ることができます。
4DとJavaのタイプ対応表
4th Dimension
<-->
Java
C_BOOLEAN
<-->
boolean
C_LONGINT
<-->
int
C_REAL
<-->
double
C_TIME
<-->
com.ronri_kobo.Time
C_DATE
<-->
com.ronri_kobo.Date
C_TEXT
<-->
java.lang.String
C_PICTURE
<-->
com.ronri_kobo.Picture
C_BLOB
<-->
byte[]
ARRAY BOOLEAN
<-->
boolean[]
ARRAY INTEGER
<-->
short[]
ARRAY LONGINT
<-->
int[]
ARRAY REAL
<-->
double[]
ARRAY DATE
<-->
com.ronri_kobo.Date[]
ARRAY TEXT
<-->
java.lang.String[]
ARRAY PICTURE
<-->
com.ronri_kobo.Picture[]
制限事項

JExternalによって実行されるJavaメソッドでは、ユーザインタフェースコンポーネントを使用することはできません。Javaメソッドの中で、ユーザとの対話が必要になった場合は、Javaから4Dメソッドをコールバックして、そこでユーザとの対話を行ってください。


ドキュメント

Xcodeを使用すれば、4Dの実行時に4Dと連動して、4Dから呼び出されるJavaメソッドを効率的にデバッグすることができます。



 
Copyright (c) Ronri Kobo, Inc. All rights reserved.
support@ronri-kobo.com