3

私はSkype4Java(スカイプ用のJava API)を読んでいて、スカイプクライアントにアクセスするためにjniを使用していることに気づきました。

直感的には、他のプロセスにアクセスするための OS 依存の jni 実装を持つ Java の標準ライブラリが既に存在すると思います。探すように設定しましたが、見つかりませんでした。

そのような図書館はありますか?そうでない場合、必ずしもSkypeクライアントではなく、OSの別のプロセスにアクセスするためのベストプラクティスはありますか?

4

4 に答える 4

4

Java 1.4 以降では、メモリ マップ ファイルを使用して、別のプロセスと任意の情報を交換できます。詳細については、java.nio.MappedByteBuffer を参照してください。

于 2008-10-02T09:51:00.010 に答える
1

これはあなたが探しているものとはまったく異なりますが、おそらく大いに役立つでしょう: java.netのJava Native Accessプロジェクト。

于 2008-10-02T09:56:16.033 に答える
1

ソケットを忘れないでください...

于 2008-10-02T10:39:50.813 に答える
1

「アクセス」があなたにとって何を意味するのかを定義する必要があると思います。昔ながらのプロセス間通信について話している場合は、ソケットまたは JNI が本当に最善の策です。

メモリ マップド ファイルの使用に関する Garth のコメントは興味深いものです。私は C アプリケーション間の IPC に MMF と仮想ファイルを何度も使用しましたが、Java の MMF 実装がネイティブ OS の仮想ファイル システムと互換性があるとは思いもしませんでした。これらの種類の仮想ファイルは通常、自明ではないセットアップを必要とするため、うまくいくとは驚きです...

とはいえ、アプリ間で大量のデータをやり取りする場合を除き、ソケットを使用するのがおそらく最も普遍的で効果的な方法です。ホスト OS と Java VM の間のエンディアンを考慮してください :-)

于 2008-10-03T03:49:35.610 に答える