将jre打包到应用程序中
Packaging a jre with my application
我的应用程序包含一个c++ exe文件,该文件使用JNI调用java程序,因此需要jvm.dll。但是,我希望我的应用程序附带自己的嵌入式jre,但在我复制JAVA_HOME中找到的jre6文件夹并将其添加到我的安装程序后,它无法运行程序(VM初始化期间发生错误无法加载本机库:找不到依赖库),当我在jvm.dll上使用依赖项漫游器时,它说它找不到gpsvc.dll, IEShims.dll和systys .dll。在我尝试将这些dll复制到与jvm.dll相同的文件夹后,依赖walker告诉我gpsvc.dll和sysntys .dll是64位的,它应该是x86。问题是,这些是我系统上仅有的dll,我该怎么办?
Java虚拟机不仅仅由jvm.dll
组成。您需要重新分发整个JVM包并将其安装到用户的机器上,而不是仅仅将jvm.dll
添加到您自己的应用程序中。
在安装应用程序之前要求用户自己下载并安装JVM可能会容易得多。如果您真的想在应用程序中重新分发JVM,您需要在Oracle的网站上找到文档,了解具体的许可是什么以及如何做到这一点。例如,看看JDK 6自述文件的这一段。
它不像复制jvm.dll
和它所依赖的其他库那么简单。
您可以从适当的站点下载所需的dll,即从这个站点。
相关文章:
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 在C应用程序中运行C++(带有STL)函数
- 使用VerQueryValue检索应用程序的文件描述
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用调试/崩溃报告将应用程序部署到客户端
- C++控制台应用程序阻止退出
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 将应用程序从32位移植到64位时出现问题
- 如何改变c++应用程序的视觉效果
- WM_CTLCOLORSTATIC从未在WIN32应用程序中触发
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- phytec phyBOARD iMX-6在从闪存而不是SD卡运行qt5 opengles应用程序时表现不佳(FPS减半
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 如何从Windows应用程序输出到标准?
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 如何在 64 位 vb.net Windows 应用程序中引用 32 位 dll
- 将jre打包到应用程序中