我的應用程序包含一個使用JNI調用java程序的C++ exe文件,因此需要jvm.dll。但是,我希望自己的應用程序能夠使用自己的嵌入式jre,但是在複製JAVA_HOME中找到的jre6文件夾並將其添加到我的安裝程序後,它無法運行程序(虛擬機初始化期間發生錯誤無法加載本機庫:Can找不到依賴庫),當我在jvm.dll上使用依賴關係walker時,它說它找不到gpsvc.dll,IEShims.dll和sysntfy.dll。在我嘗試將這些dll拷貝到與jvm.dll相同的文件夾後,依賴walker告訴我gpsvc.dll和sysntfy.dll是64位,它應該是x86。問題是,那些是我係統上唯一的dll,我該怎麼辦?用我的應用程序打包一個jre
回答
您可以從相應的網站,即從this one下載所需的DLL。
Java虛擬機包含的不僅僅是jvm.dll
。您需要重新分發整個JVM軟件包並將其安裝到用戶的機器上,而不是將jvm.dll
添加到您的應用程序中。
在安裝應用程序之前,要求用戶自行下載並安裝JVM可能會容易得多。如果你真的想用你的應用程序重新分配JVM,你需要在Oracle的網站上找到有關這個JVM的確切許可證以及如何去做的文檔。例如,查看JDK 6自述文件的this paragraph。
這不像複製jvm.dll
和它依賴的其他庫那麼簡單。
得到它其實,我試圖根據http複製整個jre6目錄://stackoverflow.com/questions/5380778/need-help-in-installing-jre和http://www.dobysoft.com/products/nativej/help/html/advanced/bundling.html ...如果這是不重新分配整個jvm包,是什麼?我可以遵循哪些具體步驟? – shawn
在Windows上,當您安裝JRE時,它還會將內容寫入註冊表。僅僅複製JRE目錄還不足以在Windows上安裝它。您需要運行JRE安裝程序。 – Jesper
錯誤我剛剛複製了這些庫,它似乎工作到目前爲止...... – shawn
- 1. 用我的應用程序打包另一個apk
- 2. 從我的應用程序打開另一個應用程序?
- 3. 打開一個應用程序從我的Android應用程序
- 4. Chrome打包的應用程序:打開另一個應用程序
- 5. 包括JRE在我的罐子Swing應用程序
- 6. 將一個Node.js應用程序打包爲一個osx應用程序
- 7. android:我如何從我的應用程序打開另一個應用程序?
- 8. 打包Perl應用程序
- 9. 打包python應用程序
- 10. 適用於Java應用程序的JRE包裝
- 11. 打開另一個應用程序從我的應用
- 12. 將一個kivy應用程序打包成一個exe文件
- 13. 打包一個應用程序,包括java war文件,Tomcat,DB
- 14. 設置多個的JRE在同一應用程序
- 15. 部署java應用程序以使用JRE打開
- 16. 爲我的應用程序打包安裝程序
- 17. 如何從我的應用程序打開另一個應用程序?
- 18. 從我的應用程序打開pdf到另一個pdfviewer應用程序
- 19. 從我們的應用程序打開另一個應用程序?
- 20. Android,在我的應用程序內部打開一個外部應用程序
- 21. 如何在我的應用程序中包含另一個應用程序?
- 22. 使用Pyinstaller打包一個kivy應用程序
- 23. 使用.Net應用程序打包一個文件夾
- 24. 找出JRE用於在Windows中安裝多個JRE的應用程序
- 25. 使用JRE分發我的應用程序jar
- 26. 打開一個應用程序的Java
- 27. 用UIButton打開另一個我的應用程序
- 28. 從我的應用程序調用另一個應用程序
- 29. 我如何包括一個文件到我的應用程序
- 30. 一個使用我的應用程序
好吧我設法找到sysntfy.dll和依賴walker只是拋出一個錯誤的gpsvc.dll;我在線閱讀,gpsvc.dll只有x64版本,我應該怎麼做才能解決這個問題? – shawn
嗯,它不是,因爲它是Microsoft系統策略客戶端庫。您可以從http://www.dll-download-system.com/home/g-dlls-not-system-/gpsvc.dll/details.html – wanderlust