3

Java コードから Mac OSX 上の Wifi デバイスのリストにアクセスする必要があります。調査した結果、「ネイティブ」コード、つまり CoreWLAN フレームワークと CWInterface.h クラス ( https:// developer.apple.com/library/mac/#documentation/CoreWLAN/Reference/CWInterface_reference/translated_content/CWInterface.html )

私は当初、JNA を使用してこのコードを呼び出すことができると考えていましたが、CoreWLAN は Objective-C (C/C++ ではない) であるため、何かが必要であることに気付きました。

この Objective-C Java ブリッジ ( https://github.com/shannah/Java-Objective-C-Bridge ) を試しましたが、CoreWLAN フレームワークを見つける方法がわかりません。

そこで、JNAerator ( https://code.google.com/p/jnaerator/wiki/ObjectiveC ) も試してみたので、BridJ ( https://code.google.com/p/bridj/ )を使用できます。しかし、正しい Java コードを生成することはできません。

  • このスタイルを使用するとjava -Xmx1000m -jar jnaerator.jar -framework CoreWLAN -jar CoreWlan.jarすぐに実行されますが、CoreWlan.h のマッピングのみを含む jar が作成されます。
  • CWInterface.h に対して jnaerator を実行すると、jnaerator が失敗します。(jnaerator の最新のスナップショット バージョンを使用しています)

Java から CWInterface.h のメソッドを呼び出す最良の方法は何ですか?

4

3 に答える 3

1

これには Java Objective-C ブリッジを使用できます。jna の Native.loadLibrary() メソッドで使用するフレームワークをロードするだけです。

この例では、WebKit フレームワークを使用しています。https://github.com/shannah/Java-Objective-C-Bridge/blob/master/java/test/ca/weblite/objc/TestWebView.java

于 2014-02-23T01:31:18.550 に答える