首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

VC 調用 Java JVM 失敗排查:jvm.dll 路徑配置關鍵細節

     編輯:Java 程式設計入門

JNI_CreateJavaVM 返回 -1 (JNI_ERR) 的真兇與解決之道

在 VC++ 專案中嵌入 JVM 時,常遇到 JNI_CreateJavaVM 返回 -1 (JNI_ERR),代碼編譯正常、jvm.dll 已複製至 EXE 目錄,卻始終無法建立 JVM 實例。

核心原因:jvm.dll 非獨立運作

jvm.dll 並非獨立 DLL,它依賴相對路徑下的整個 JRE 目錄結構(如 client/jvm.dll、核心類庫 rt.jar、本地庫等)。單獨複製 jvm.dll 至 EXE 目錄會導致運行時找不到依賴資源,進而建立 JVM 失敗。

正確解決方案:配置 PATH 環境變數

將完整 JRE bin/client 目錄加入系統或使用者 PATH 環境變數,例如:

C:\jdk1.5.0_03\jre\bin\client

(具體路徑依安裝的 JDK 版本與目錄而定)

原理說明

  • JVM 啟動器透過 jvm.dll 入口點載入,隨後需解析相對路徑尋找核心類庫與本地庫。
  • PATH 環境變數讓作業系統載入器能正確定位完整 JRE 運行時依賴。
  • 此方式亦符合 Java 部署規範,避免手動複製檔案導致版本不一致或遺漏。

驗證建議

  1. 配置 PATH 後重啟開發環境(IDE/命令提示字元)使生效。
  2. 撰寫最小測試程式僅呼叫 JNI_CreateJavaVM 確認返回 JNI_OK (0)。
  3. 生產環境部署時,建議打包完整 JRE 或使用標準安裝程式自動配置 PATH。

掌握此細節,即可徹底解決 VC 嵌入 JVM 的「最後一公里」難題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved