2010-03-25 24 views
12

Tôi nhận được lỗi sau khi chạy một thực thi Tôi tạo ra trên một máy 64-bit sử dụng C++:Xảy ra lỗi lầm trong quá trình khởi của VM

"Xảy ra lỗi lầm trong quá trình khởi của VM Không thể tải thư viện bản địa: Không thể tìm thấy thư viện phụ thuộc "

PATH của tôi (được hiển thị bên dưới) rõ ràng trỏ tới jvm.dll vì tôi có tệp đó trong cả C: \ Progra ~ 1 \ Java \ jdk1.6.0_17 \ jre \ bin và C: \ Windows \ System32

PATH = C: \ Program Files (x86) \ Gmake \ bin; C: \ Program Files (x86) \ apache-ant-1.7.1 \ bin; C: \ Progra ~ 1 \ Java \ jdk1.6.0_17 \ bin; C : \ Program Files (x86) \ Microsoft Visual Studio 8 \ Common7 \ Tools; C: \ Progra ~ 1 \ Java \ jdk1.6.0_17 \ jre \ bin \ server; C: \ Progra ~ 1 \ Java \ jdk1.6.0_17 \ jre \ bin; C: \ Windows \ System32

Có ai có bất kỳ ý tưởng nào về nguyên nhân gây ra lỗi này không? Cảm ơn.

Trả lời

5

Sử dụng dependency walker để tìm ra tệp nào bị thiếu.

+0

Cảm ơn bạn đã trả lời. Đây là một công cụ tuyệt vời. Khi chạy profiler, tôi gặp lỗi: LoadLibraryA ("C: \ bin \ verify.dll") trả về NULL theo chuỗi 1.Lỗi: Không tìm thấy mô-đun được chỉ định (126) Nó nói rằng nó đang được gọi bởi c: \ windows \ system32 \ JVM.DLL Hai câu hỏi có thể giúp bạn giải quyết: 1) Tại sao lại gọi system32 JVM thay vì một trong PATH của tôi? 2) Tại sao nó sẽ cố gắng tìm trong C: \ bin cho bất kỳ dll? Cảm ơn bạn lần nữa. – Brittany

+3

Java có xu hướng khó chịu để cài đặt các tệp nhị phân vào Windows \ System32. bạn có thể chạy những thay vì một trong những sau này trong con đường của bạn. nếu bạn định tự thêm java vào đường dẫn, chỉ cần xóa java và javaw từ windows \ system32. về vị trí dll, không có ý tưởng. –

2

Đây là cách tôi giải quyết một vấn đề tương tự:

4

Tôi gặp vấn đề tương tự khi chạy java.exe trong phiên bản Windows2008 R2 của mình.

con đường của tôi là

PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32 
\WindowsPowerShell\v1.0\;C:\Program Files\System Center Operations Manager 2007\ 
;C:\Java\jdk1.6.0_33\bin 

khi tôi chạy java.exe dưới C: \ Java \ jdk1.6.0_33 \ bin, nó hoạt động tốt. Tôi thấy rằng trong c: \ Windows \ System32 \ đi kèm với một bản sao của java.exe. Khi tôi chạy c: \ Windows \ System32 \ java.exe, nó cho thấy những lỗi tương tự:

C:\>Windows\System32\java.exe 
Error occurred during initialization of VM 
Unable to load native library: Can't find dependent libraries 

Tôi cố định vấn đề này bằng cách di chuyển thư mục C: \ Java \ jdk1.6.0_33 \ bin vào đầu môi trường PATH:

PATH=C:\Java\jdk1.6.0_33\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\ 
Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\System Center 
Operations Manager 2007\ 

Hy vọng trợ giúp này.

+0

siêu, cảm ơn bạn, điều đó cũng giúp tôi – sergionni

1

Tôi gặp lỗi này vì PATH (biến môi trường) của tôi chưa được đặt chính xác.

  1. trong khi thiết biến PATH, thiết lập đường dẫn của jvm.dll như một con đường đầu tiên trong danh sách
  2. Khởi động lại máy tính của bạn.

Lưu ý: Không di chuyển jvm.dll vào thư mục dự án của bạn.

0

Trong trường hợp của tôi, có tệp jvm.dll trong cùng thư mục với tệp exe của tôi. Tôi chỉ cần xóa các jvm.dll từ đó và nó đã làm việc. Có thể, nó đứng trước một trong PATH