JavaからWin 32 APIをコール--J/Invoke

荒浪一城

2007-09-06 20:29

 8月31日、「J/Invoke 1.0」がリリースされた。J/Invokeは、Javaから容易にWin32 DLLまたはLinux shared libraryを呼び出すことができる製品。「J/Invoke License」の元、配布されており、価格はDeveloper Licenseで300ドルなど。

 例えば、Win32 APIの「MessageBox」関数をJavaから呼び出すには、下記のように記述する。

import com.jinvoke.JInvoke;

import com.jinvoke.NativeImport;

public class Example {
    @NativeImport(library="User32")
    public static native int MessageBox(int hwnd, String text, String caption, int type);

    public static void main(String[] args) {
        JInvoke.initialize();
        MessageBox(0, "This MessageBox is a native Win32 MessageBox", "Caption", 0);
    }
}

 まず最初に、ネイティブのメソッドと@NativeMethodアノテーションをWin32 APIがどのDLLで存在するかを指定してから一緒に宣言する。この場合、User32.dllはMessageBox機能をエクスポートする。メソッドのシグネチャは、対応するWin32APIの機能のプロトタイプに一致する。次に、J/Invokeランタイムが「JInvoke.initialize();」を実行し初期化を行うという 流れだ。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    「デジタル・フォレンジック」から始まるセキュリティ災禍論--活用したいIT業界の防災マニュアル

  2. 運用管理

    「無線LANがつながらない」という問い合わせにAIで対応、トラブル解決の切り札とは

  3. 運用管理

    Oracle DatabaseのAzure移行時におけるポイント、移行前に確認しておきたい障害対策

  4. 運用管理

    Google Chrome ブラウザ がセキュリティを強化、ゼロトラスト移行で高まるブラウザの重要性

  5. ビジネスアプリケーション

    技術進化でさらに発展するデータサイエンス/アナリティクス、最新の6大トレンドを解説

ZDNET Japan クイックポール

自社にとって最大のセキュリティ脅威は何ですか

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]