Java クラスのインポートウィザードでは、外部クラスを使用するのに必要なデータタイプを、Java クラスの対応するセットを含む .jar または .zip を選択するだけで作成できます。
ネイティブ オブジェクト タイプの 外部オブジェクト (EO) は自動的に作成されます。' target='_blank'>5669' target='_blank'> 外部オブジェクト (EO) は自動的に作成されます。
自動的にインポートすることができるクラスは、Plain Old Java Object (POJO)です。
Java クラスのインポートウィザードで外部クラスを含める方法は 2 つあります。
1 つは、 [ パッケージファイル ] オプションを使用する方法で、jar 全体を入力します (この場合、すべてのクラスの依存関係が確認されるため、クラスが見つからないと、クラスパスにクラスが追加されるまで、jar が正常にインポートされないことを示すエラーが表示されることがあります)。将来的にこれらのクラスを必要としなくなる可能性があるという点で、通常、このオプションは選択しません。
もう 1 つのオプションとして、関係のある特定のクラスをインポートする方法があります ( [ クラス名 ] オプション)。
どちらの場合でも、インポートするクラス (またはパッケージ) を [ Classpath ] プロパティで指定しておく必要があります。
GeneXus で、 [ ツール ] -> [ アプリケーションの統合 ] -> [ Java クラスインポート ] を実行します。
この例では、 [ パッケージファイル ] オプションを選択しています (jar ファイルがインポートされます)。
外部オブジェクトの接頭語 (オプション) および外部オブジェクトのナレッジベースフォルダ (オプション) を指定します。
インポートするクラスを選択します。
[ タグ関連クラス ] チェックボックスをオンにすると、選択したクラスに関連するすべてのクラスがインポートされます。
選択した各クラスに外部オブジェクトが作成されます。外部オブジェクトの名前は、入力した接頭語およびクラスの名前で構成されます。
GeneXus で、 [ ツール ] -> [ アプリケーションの統合 ] -> [ Java クラスインポート ] を実行します。
この例では、 [ クラス名 ] オプションを選択しています。クラス名 (拡張子なし) とともに Java パッケージを指定する必要があります。
クラスファイルをインポートするには、このクラスの Java パッケージについて考慮してください。この例では、外部 .class の Java パッケージは次のようになります。
通常どおり、[ Classpath ] プロパティに対応するパスを追加する必要があります。
インポートするクラスが jar ファイルまたは zip ファイルに含まれている場合は、GeneXus でこのファイルをクラスパスに追加する必要があります。それ以外の場合は、jar にパッケージ化されないクラスの場所について検討し、 [ ディレクトリーを追加 ] ボタンを使用して [ Classpath ] プロパティにその場所を追加する必要があります。
パッケージが次のフォルダにあるとします。
この場合、Java クラスパスプロパティを次のように設定して、パッケージを配置するフォルダを追加する必要があります。
外部オブジェクトの接頭語 (オプション) および外部オブジェクトのナレッジベースフォルダ (オプション) を指定します。
インポートするクラスを選択します。この手順は前述の例と同じです。
クラスをインポートするときに、AnyObject タイプを使用して、パラメーターの一部を残すことができます。
これは、一部のクラスが含まれていないために発生します。これらのメソッドが必要かどうかを確認し、不要な場合は AnyObject タイプを残します。
これらのメソッドが必要な場合は、次の 2 つのオプションがあります:
1.対応するソースを開き (たとえば、DJ Decompiler やその他の同様のツールで逆コンパイルする)、そのメソッドで参照されているクラスを確認します。このクラスをインポートする必要があります。必要なメソッドが外部オブジェクトで正しく定義されるまで再帰的に実行します。
2.もう 1 つのオプションとして、必要なメソッドで、関係のあるクラスのラッパーを作成する方法があります。この場合、ラッパーのクラスをインポートする必要があります。
ネイティブ オブジェクト タイプの外部オブジェクトについて詳しくは、「外部オブジェクト: ネイティブオブジェクト」を参照してください。外部オブジェクト: ネイティブオブジェクト
[ Java package name ] プロパティを使用する場合は、Java クラスのインポートウィザードで使用するすべての外部クラスにパッケージ名が指定されていることを確認してください。指定されていない場合は、コンパイルエラーが発生します。
com\packagename\SdtSampleExternalObject.java error: cannot access PropertyID
public PropertyID getExternalInstance( )
^
bad class file: .\com\packagename\PropertyID.class
class file contains wrong class: PropertyID
Please remove or make sure it appears in the correct subdirectory of the classpath.
failed ( error code=1)
|