2016-08-11 7 views
0

私は、JNIを使​​用していくつかのネイティブライブラリ(DLL)をロードする必要があるjavaを使用してCDバーナーで作業しています。さて、 "System.loadLibrary(libName)"を使用してネイティブライブラリをロードするには、ライブラリが "java.library.path"パスのいずれかに設定されている必要がありますが、 "System.load(libPath)"を使用する場合はそこにありますその必要はありません。ネイティブライブラリをロードするときにJVMがクラッシュする

だから、私は「は、System.load(libPath)」を使用してすべての私のネイティブライブラリをロードするために使用し、それは以下のエラーメッセージが表示されてJVMクラッシュの原因となる単一のもの"BurnerCaller.dll"を除き、それらのすべてのために働きました。

# A fatal error has been detected by the Java Runtime Environment: 
# 
# Internal Error (0xe0434352), pid=2280, tid=0x00000000000013a8 
# 
# JRE version: Java(TM) SE Runtime Environment (8.0_92-b14) (build 1.8.0_92-b14) 
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.92-b14 mixed mode windows-amd64 compressed oops) 
# Problematic frame: 
# C [KERNELBASE.dll+0xaa7d] 
# 
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows 
# 
# An error report file with more information is saved as: 
# C:\Program Files\Java\MainWorkspace\NewAman\hs_err_pid2280.log 
# 
# If you would like to submit a bug report, please visit: 
# http://bugreport.java.com/bugreport/crash.jsp 
# The crash happened outside the Java Virtual Machine in native code. 
# See problematic frame for where to report the bug. 

Hereです。詳細なエラーです。

奇妙なことは、それが魔法のように動作し、私は(私のアプリケーションを実行するために使用されていること)現在実行中のJREまたはJDKの「ビン」ディレクトリにこのライブラリを置くと場合だけということです。

ご協力いただきありがとうございます。

+0

本当にJNIコード*を含む複数のネイティブライブラリ*がありますか?通常は1つしか持っていないでしょうし、それが使った他のネイティブのものにDLL参照を持っているでしょう。 – EJP

+0

これは唯一のユニークなライブラリで、_JNIコード_ – MDev

+0

が含まれているため、ロードする必要がある唯一のライブラリです。 – EJP

答えて

0
  1. 他のJDK(Oracle JDK、Open JDK、バージョン6,7,8)を試してください。 DLLのbitness
  2. 試合のJDKのbitness(32 64対)デバッグネイティブコード

それは純粋なネイティブの問題のように見え、あなたはネイティブツールを使用する必要がありますことを確認してください。

BurnerCaller.dllのソースコードがある場合は、(Visual Studio、WinDbg)\ debug \を添付してください。少なくとも、ネイティブクラッシュのスタックトレースが表示されます。 あなたがsouceを持っていない場合 - ちょうどJava binディレクトリに置く、最も簡単な方法。

システム・ローダーがライブラリーをロードするときに、このライブラリーのDllMainが呼び出されます。バグがそのまわりのどこかにあるように見えます。

+0

あなたの答えをたくさんありがとう、私はライブラリのコードがあり、私は今すぐそれをデバッグしようとします。私はそれが動作することを願って! – MDev

関連する問題