1

Java VM を作成し、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   

何か助けはありますか?

4

1 に答える 1

0

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>\RuntimeLibjvm.dll のパスを 照会します。

これらのパスを使用して、必要なランタイム バージョンがシステムに存在するかどうかを確認することもできます。

于 2013-01-21T07:35:00.317 に答える