我正在开发一个基本的应用程序来创建一个Java,并使用JNI从C++启动一个Java程序。但是,我有一些编译错误:
Error 6 error LNK2028: unresolved token (0A00000D) "extern "C" long __stdcall JNI_CreateJavaVM(struct JavaVM_ * *,void * *,void *)" (?JNI_CreateJavaVM@@$$J212YGJPAPAUJavaVM_@@PAPAXPAX@Z) referenced in function "public: bool __clrcall JarLauncher::launchJar(void)" (?launchJar@JarLauncher@@$$FQ$AAM_NXZ)
Error 5 error LNK2028: unresolved token (0A00000C) "extern "C" long __stdcall JNI_GetDefaultJavaVMInitArgs(void *)" (?JNI_GetDefaultJavaVMInitArgs@@$$J14YGJPAX@Z) referenced in function "public: bool __clrcall JarLauncher::launchJar(void)" (?launchJar@JarLauncher@@$$FQ$AAM_NXZ)
Error 7 error LNK2019: unresolved external symbol "extern "C" long __stdcall JNI_GetDefaultJavaVMInitArgs(void *)" (?JNI_GetDefaultJavaVMInitArgs@@$$J14YGJPAX@Z) referenced in function "public: bool __clrcall JarLauncher::launchJar(void)" (?launchJar@JarLauncher@@$$FQ$AAM_NXZ)
Error 8 error LNK2019: unresolved external symbol "extern "C" long __stdcall JNI_CreateJavaVM(struct JavaVM_ * *,void * *,void *)" (?JNI_CreateJavaVM@@$$J212YGJPAPAUJavaVM_@@PAPAXPAX@Z) referenced in function "public: bool __clrcall JarLauncher::launchJar(void)" (?launchJar@JarLauncher@@$$FQ$AAM_NXZ)
Error 9 error LNK1120: 4 unresolved externals 有什么帮助吗?
发布于 2013-01-21 15:35:00
看起来你没有链接jvm.lib。你通常可以在%ProgramFiles%\Java\jdk1.X.XX_XX\lib中找到它,然后你可以将它添加到你的链接器输入设置中。
此外,您还需要在运行时加载jvm.dll (并将其添加到延迟加载的dll中)。在Windows上,您可以从注册表中获取当前位置。查询SOFTWARE\JavaSoft\Java Runtime Environment\CurrentVersion获取当前运行时版本,查询SOFTWARE\JavaSoft\Java Runtime Environment\<version>\RuntimeLib获取jvm.dll的路径。
使用这些路径,您还可以检查系统上是否存在所需的运行时版本。
https://stackoverflow.com/questions/14434096
复制相似问题