私はJavaプロジェクトにC++カスタムlibを持っています。このカスタムC++ libはfibre(boost C++ライブラリ)を使用しています。 JavaからC++ファイバーを呼び出せますか? 仮想マシンがそれを知っていなくても、事実上、ファイバはVMスレッド内で動作します。だから、すべてがOKかもしれないが、多分私はVMのデザインについて知っているいくつかのことが、この使用法では期待されていない? (注意してくださいそれは通常のC + +コールではない、それはC + +の中でファイバーフレームワークを使用しているので、C + +のTLSはJavaと競合する可能性がありますスレッドコンテキストスイッチは同じですか?)Javaから呼び出されたBoost C++ファイバーへのJNI呼び出しを作成できますか?
-1
A
答えて
0
javaからC++ファイバー?
はい、JavaでC++ライブラリを呼び出すことができます。 C++モジュールをJavaに呼び出すには、Javaネイティブインタフェース(JNI)を使用できます。
必要に応じて、C++でビルドされたライブラリにアクセスするためにラッパーライブラリを作成する必要があります。 JavaコードはJNIを使用してWrapper C++ライブラリに接続し、Wrapper LibraryはC++のファイバーライブラリに接続します。
JNIコールについては、tutorialを参照してください。
関連する問題
- 1. Java JNI呼び出しライブラリロード
- 2. JNI呼び出しAPI - NoClassDefFoundError(C/Java)
- 3. JNIが呼び出すCプログラムからC関数を呼び出すことはできますか?
- 4. VB6で作成されたDLLをCから呼び出す
- 5. JavaからC++関数を呼び出すJNI - Cocos2d-x
- 6. DLLへの呼び出しからAPIへの呼び出し
- 7. JNI呼び出しインタフェース:jni呼び出し中にSIGSEGVが報告される
- 8. javaでコンストラクタを呼び出すたびにオブジェクトが作成されますか?
- 9. アンドロイド、JNI呼び出しJavaのコンストラクタ
- 10. JSNI(JavaScriptからJavaへ呼び出す)
- 11. CプログラムからJavaを呼び出す
- 12. C#からJava WSを呼び出す
- 13. JavaからC++を呼び出す
- 14. JNI: "()[C"署名付きのJavaメソッドを呼び出す
- 15. VB6から呼び出された.netクラスからのWebサービス呼び出し
- 16. Python:setterが呼び出されたら関数を呼び出しますか?
- 17. C#:コードからの呼び出し呼び出し階層
- 18. JNIを使用してJavaでC#コードを呼び出す
- 19. JNI CとC++で異なる呼び出しですか?
- 20. JNI呼び出しブールメソッド
- 21. アプリケーションがバックグラウンドから呼び出されたときにメソッドを呼び出す
- 22. Android JNIネイティブコードのC++オブジェクトはガベージコレクションを呼び出しますか?
- 23. JNI関数からJava例外がスローされた後にC++デストラクタが呼び出されますか?
- 24. JNIからJavaメソッドを呼び出すと、プログラムがクラッシュする
- 25. Node.jsでchild_processを呼び出すとCから子プロセスを呼び出してnode.jsから呼び出すC++バインドを作成する
- 26. JNI経由でAndroidのC++からJava関数を呼び出す
- 27. JNIメソッドから純粋なC関数を呼び出す
- 28. PythonからC#で書かれた関数を呼び出すとき、 'NoneType'オブジェクトが呼び出せません
- 29. effective_javaからの呼び出しをインラインで呼び出す
- 30. Javaから既に生成されたCコードを呼び出す
申し訳ありませんが質問は別です。私はJNIを知っています。 C++ファイバーは、VMの内部構造に直接影響を与える可能性があります。 –
Javaでの移植のC++ブースターについてのテストの後、私はあなたに言うことができます(C++のコードがC++のコードを実行している場合にのみ動作します)、上記の応答が間違っています。この実験は、将来の相互運用性に重要な影響を与えます。 Javaでは、C++との相互運用性は向上しません。ファイバーは、より高いレベルで透明になるために、OSカーネルレベルで実装されなければなりません。 –
あなたの所見を共有してくれてありがとう。 –