jvm.dll似乎与Visual Studio 2013不兼容
jvm.dll seems incompatible with Visual Studio 2013
我正在使用LoadLibrary()将(服务器)jvm.dll动态加载到我的64位Visual Studio 2013 C++应用程序中,以便使用JNI执行本机Java代码。
在VS调试器中,在加载dll时,我遇到了一些访问冲突(但如果我在这些冲突之后"继续",情况似乎会正常);然后在调用一些JNI调用时发生硬崩溃。我尝试过Java 1.7和Java 1.8中的jvm.dll,但也遇到了同样的问题。
我怀疑问题是运行库不兼容。依赖性walker表示,即使是最新的jvm.dll也依赖于msvcr100.dll(来自Visual Studio 2010)。我听到过关于使用不兼容的运行时版本的后果的可怕警告;并在其他情况下亲眼看到了结果。
有其他人遇到这个问题吗?是否有针对Visual Studio 2013编译的jvm.dll版本?
谢谢,Dan
就在最近(2015年2月),我编译了一个JNI应用程序,它调用JVM来运行Java程序。我使用了最新的JRE版本(1.8.0_31)和Visual Studio 2013。我还在运行时加载jvm.dll。如果你想看看我是如何设置JNI调用的,请看一下这篇文章。
所以有可能。。。请确保包含jvm.dll的JRE是为与Visual Studio项目相同的体系结构(32位或64位)构建的。如果您使用的是64位,您可能需要添加x64
作为您的配置。要执行此操作,请转到:
Solution --> Properties --> Configuration Properties
还要确保您的包含/库是正确的。对于我的项目,我需要包括以下内容:
C:Program FilesJavajdk1.8.0_31include
C:Program FilesJavajdk1.8.0_25includewin32
此外,我需要包括jvm.lib
,它位于:
C:Program FilesJavajdk1.8.0_31lib
确保还将jvm.lib
添加到链接器输入中。或者,您可以使用预处理器:
#pragma comment(lib, "jvm.lib")
希望这将有助于正确配置您的项目。如果您仍然有错误,我建议您完全卸载Java,然后重新安装。也许Visual Studio 2013也是如此。。。
- 将"libpqxx"与Visual Studio 2013链接/安装,以便与PostgrSQL建立C++连接
- Visual Studio 2013,错误 MSB8020:找不到 Visual Studio 2010 的生成工具
- 为什么在Visual Studio 2013上的std::this_thread::sleep_for上死锁
- 性能报告 (.vspx) 在 Visual Studio 2013 中未打开(显示损坏)
- 在 Visual Studio 2013 中使用零大小数组C++
- Visual Studio 2013 标头包含失败
- Visual studio 2013 和 g++ 7.1 中将 int 和 long 类型相乘时的 c++ 差异行为
- 在Visual Studio 2013中编译的STL列表代码在Visual Studio 2019中给出了错误.想知道原
- 错误 LNK2019: 未解析的外部符号 Visual Studio 2013 与 openCV
- cv:内存位置的异常 - 运行 openCV 代码 Visual Studio 2013 & Visual Studio 2017 - Windows 7
- 模块计算机类型和目标计算机类型 Visual Studio 2013
- 如何在Visual Studio 2013 Ultimate Edition中包含某个单词的每一行中插入断点
- 具有显式参数和大小的可变参数模板.Visual Studio 2013.
- 使用 Visual Studio 2013 编译 GDCM dlls 2.8.4 for Windows
- 基本字符串操作有问题 [c++, Visual Studio 2013]
- Visual Studio 2013中可能的C/C 编译器错误
- 在Visual Studio 2013上.Win32 应用和 CLR 应用
- 我正在尝试在Visual Studio 2013中编写我的第一个"Hello World"代码。为什么我会收到"IntelliSense: no operator message"和"error C2
- DLL不导出Visual Studio 2013 VB代码中的字符串
- 我们如何使用Visual Studio 2013访问C 中的更改编号