ฉันกำลังทำงานกับโปรเจ็กต์ Java ที่ใช้ JNI JNI เรียกไลบรารีแบบกำหนดเองที่ฉันเขียนขึ้นเองสมมติว่า mylib.dll และขึ้นอยู่กับไลบรารีของบุคคลที่สาม libsndfile-1.dll
เมื่อฉันเรียกใช้โปรแกรมของฉันมันขัดข้องด้วย
java.lang.UnsatisfiedLinkError: C:\...path...\mylib.dll: Can't find dependent libraries.
ฉันได้ค้นหาไซต์นี้ (และอื่น ๆ ) และฉันได้ลองแก้ไขหลายอย่าง:
ฉันวิ่งวอล์คเกอร์แบบพึ่งพา DW ให้คำเตือนสองสามไลบรารีสองไลบรารีที่ libsndfile ต้องการ MPR.DLL และ SHLWAPI.DLL มี "การนำเข้าที่ไม่ได้รับการแก้ไข" - แต่คำถามที่พบบ่อยของ DWกล่าวว่าคำเตือนเหล่านี้สามารถละเว้นได้อย่างปลอดภัย
ฉันคงชื่อวิธีการใน MYLIB.dll ตามที่แนะนำที่นี่ ชื่อเมธอดถูกคอมไพเลอร์ยุ่งเหยิง แต่ฉันเพิ่มแฟล็ก linker และตอนนี้ชื่อเมธอด dll ตรงกับชื่อในไฟล์ส่วนหัว jni ของฉันทุกประการ
ฉันใส่ DLL เหล่านี้ทั้งหมดไว้ในไดเร็กทอรีเดียวกัน - ไดเร็กทอรีเดียวกับ. jar ที่เรียกใช้ - เพื่อให้แน่ใจว่าอยู่ใน PATH ที่ถูกต้อง
ไม่มีลูกเต๋า
ใครมีความคิดว่าเกิดอะไรขึ้น?
ฉันกำลังพัฒนา Visual Studio 2010 บน MacBook pro (ผ่าน Parallels) ฉันกำลังทำการทดสอบใน Windows XP บนแล็ปท็อป toshiba