私はJNIを使ってC++で書かれた線形プログラミングソルバを呼び出すJavaアプリケーションをコーディングしました。いくつかの成功した呼び出しの後、EXCEPTION_ACCESS_VIOLATIONエラーが発生し、アプリケーションが終了します。 エラーを解決してJavaアプリケーションを動作させ続けるにはどうすればよいですか?ocassionalyがEXCEPTION_ACCESS_VIOLATIONをスローするdllへのjava呼び出しを処理するには?
0
A
答えて
1
まず、dllがクラッシュすると、JVMが終了します。
これは、まずJNIを使用する際の欠点の1つです。したがって、一般的にを飲み込むことは簡単ではありません dllからいくつかの例外があります。
あなたのケースでは、エラーはユニット化されたメモリへのヒントです。あなたのコードでは、バインドされていないインデックス付けが必要です。
より多くの助け
0
を得るために違反がネイティブコードで起こっアクセスがある場合、実行中のJVMを維持する方法はありませんけれどもあなたはあなたのコードを投稿する必要があります。
あなたができることはいくつかあります。
- ベスト - 慎重に小さなスタンドアロンC++クライアントで、JNIせずにあなたのlibがデバッグ、およびこの違反の理由を見つけると、(不正なポインタの使用、不正なメモリのクリーンアップなど)は、その周りの過度のチェックを追加
- あなたを実行します純粋にこのソルバ機能を提供する責任を負う独立したJVMプロセスのDLLは、ソケット、tcp-ip、soap、restを使用して2番目のJVMと通信します。 Java Service Wrapperのように、この2番目のJVMを実行し、クラッシュした場合にJVMを再起動するように設定します。
関連する問題
- 1. DLLへの呼び出しからAPIへの呼び出し
- 2. スレッド内のdll関数呼び出しを処理する方法#
- 3. 別のCOM DLLへの呼び出しでVB.NET呼び出しCOM DLLがエラーになる
- 4. この呼び出しの処理中にIncompatibleRemoteServiceExceptionがスローされました。 GWT
- 5. APIへの非同期呼び出しを処理する方法は?
- 6. ajax呼び出しとサーバーからサーバーへの呼び出しに対応するCORSの処理
- 7. 管理対象DLLを呼び出すときにCOM InteropがEEMessageExceptionをスローする
- 8. JNIの問題:サードパーティのDLLを使用するDLLをJavaで呼び出す
- 9. IBM ILOG CPLEXを呼び出す際のEXCEPTION_ACCESS_VIOLATION
- 10. nvoglv32.dllで未処理の例外 - forループでimageStoreを呼び出す
- 11. fetchを呼び出すときにエラーを処理する
- 12. jqueryで複数のAJAX呼び出しを処理する
- 13. 同期呼び出しを処理する最良の方法
- 14. RESTful API - トークンを呼び出して注文を処理する
- 15. メソッド呼び出しをエラー処理関数への変数として渡す
- 16. JavaのC#DLLから関数を呼び出す方法は?
- 17. Javaメソッドが呼び出される前に例外をスローする方法
- 18. 同じ関数を呼び出す複数のAjax呼び出しを処理する方法は?
- 19. Blackberry - カメラアプリケーション呼び出しファイルの処理
- 20. HTTPoison呼び出しを処理するケースステートメント
- 21. 2 ipcRenderer.send呼び出しを処理する方法1 ipcMain.on
- 22. anglejsで同時呼び出しを処理する
- 23. RXJavaネストされた呼び出しを処理する
- 24. 非同期呼び出しを処理する
- 25. getActivity()を呼び出すときにsetUserVisibleHint()がNullPointerExceptionをスローする
- 26. Listenableタスクの結果を処理する関数を呼び出すか、関数を呼び出しますか?
- 27. 別のマシンでJava XSLT処理がTransformerConfigurationExceptionをスローする
- 28. マネージコードからの呼び出し時にC++ DLLがクラッシュする
- 29. ネイティブDLLへの呼び出しが.NET Windowsサービスから失敗する
- 30. VBが同じDLLを呼び出すときにVBAが呼び出されない理由