JNIからSTLライブラリを呼び出す方法はありますか?JNIはネイティブ呼び出し用のCのようなインターフェイスを提供していると思いますが、これをC++テンプレートライブラリでどのように実現できますか?JNIを使用してJavaからC++のSTLライブラリを呼び出す方法はありますか?
答えて
普通のSTLだけを探しているのであれば、おそらくJavaライブラリを代わりに使うことができます。ただし、STLのラッピングを主張する場合、SWIGはJNIで基本的なメカニズムについてはthisを参照しているSTLラッピングを提供します。これは、比較的安定した、テストされたコードを生成するはずです。
これは可能ですが、私はそれを自分でやっていません。しかし、JNIコードは、あなたが非常に注意していなければJVMをクラッシュさせる可能性があります。また、JNIコードはJavaコードよりも保守がはるかに困難です。私はJava - > JNI - > STLとCOMコードが捨てられ、同じSTLとCOMとソケットにアクセスするC#に置き換えられたプロジェクトに参加しました。私たちは振り返ることはありません。
小文字の JNIの場合は、それだけの価値があります。 JNI経由で大規模なインターフェイスを作成する場合は、JavaではなくC#でSTLと対話するコンポーネントを記述し、ソケットを使用してC#コンポーネントとJavaコンポーネント間で通信することを強くお勧めします。これは、からに書込み、テスト、および保守が容易になります。
私はなぜ JavaからSTLライブラリを使用する必要があることを尋ねる必要があります。 Javaの膨大なライブラリ群によって提供されていないものがありますか?
自分のコードを呼び出す必要がある理由は理解しています(Javaコードのプロファイリングをして、それが必要であると判断した場合、そうでなければあなたの努力は浪費されます)。しかし、STLを呼び出す方法を尋ねているようですものを直接。
私たちはしばしばJNIに問題があり、コードの可搬性が低下するため、非常にが当社のショップで使用したい理由で、 Java提供のものは適切ではありません。
はい。 C++ STLクラスをJavaオブジェクトに変換するには、swig typemapを使用する必要がありました。逆もまた同様でした。 詳細については、 http://www.swig.org/Doc2.0/Android.html
をご覧ください。- 1. JNIを使用してJavaでC#コードを呼び出す
- 2. Android Contextパラメータを持つC++/JNIからJavaメソッドを呼び出す方法
- 3. リエントラントでないCライブラリ呼び出しの使用にフラグを立てる方法はありますか?
- 4. Linux上のアセンブリコードからCライブラリを呼び出す方法は?
- 5. ExcelからC#ライブラリを呼び出す方法は?
- 6. JNI呼び出しAPI - NoClassDefFoundError(C/Java)
- 7. Android JNIネイティブコードのC++オブジェクトはガベージコレクションを呼び出しますか?
- 8. FireFoxでJavaScriptからC#dllを呼び出す方法はありますか?
- 9. C#から "Identify Monitors"関数を呼び出す方法はありますか?
- 10. JNI(C++)を使用してネイティブスレッドからJavaメソッドを呼び出す際に問題が発生する
- 11. PythonからC#ライブラリを呼び出す
- 12. C++からHaskellライブラリを呼び出す
- 13. Java JNI呼び出しライブラリロード
- 14. WCFライブラリからcmdコマンドを呼び出す方法C#
- 15. JNIを使ってJavaでオーバーライドされたスーパークラスメソッドを呼び出す方法は?
- 16. 有効なポインタを使用してCからメソッドを呼び出した後のJava JNI NullPointerException
- 17. JNIを使用して別のJNIライブラリをロードしますか?
- 18. 例外NOSUCHMETHODERRORがCからJNIを介してCからJavaメソッドを呼び出すとき
- 19. NDK C++からJavaを呼び出す方法は?
- 20. NDK C++スレッドからJava APIを呼び出す方法は?
- 21. JavaからC++を呼び出す方法は?
- 22. JNIからJavaメソッドを呼び出すと、プログラムがクラッシュする
- 23. はJNI、Mulithreadingと呼び出し方法
- 24. Python用ライブラリ:PythonプログラムからC++関数を呼び出す方法は?
- 25. Hive JDBCを使用してJavaプログラムからShell Scriptを呼び出す方法
- 26. JNIでCの複数のスレッドからjava関数を呼び出すとどうなりますか?
- 27. JavaからC++の機能を呼び出す方法
- 28. JNIを使用したC++でのメソッド呼び出し?
- 29. JNI経由でAndroidのC++からJava関数を呼び出す
- 30. Bootstrap(C#、VS 2013)を使用してCodeFileからメソッドを呼び出す方法