4

JNIを使​​用してJVMを作成しようとしています。Win7 64ビットOSを使用しています。JNI_CreateJavaVM 行で、プログラムがクラッシュします。64 ビット コンパイラを使用してプログラムをコンパイルすることにしましたが、次のエラーが発生しました。

Error 1 error LNK2001: unresolved external symbol __imp_JNI_CreateJavaVM

リンクの問題を探し始めるポイントはどこですか? また、32 ビット モードでプログラムがクラッシュするのはなぜですか?

void createJVM()
{

JavaVMInitArgs vm_args; 
JavaVMOption options[4]; 

int n = 0;     
char * str;
str= new char[1000];
sprintf(str, "-Djava.class.path=%S\\tst.jar", myPath);
options[n++].optionString = str; 

str= new char[1000];
sprintf(str, "-Djava.library.path=%S\\lib;%S", myPath, myPath);
options[n++].optionString = str;

str= new char[1000];
sprintf(str, "-Duser.dir=%S", myPath);
options[n++].optionString = str;

vm_args.version = JNI_VERSION_1_4;
vm_args.nOptions = n;     
vm_args.options = options;     
vm_args.ignoreUnrecognized = false;


JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args); 
}
4

2 に答える 2

4

プロジェクトの追加の依存関係として「jvm.lib」を追加しましたか?さらに、追加のライブラリディレクトリでjvm.libの場所を指定する必要があります...

また、64ビットアプリケーションの場合、64ビットライブラリをポイントする必要があることに注意してください。そうしないと、リンカーがリンクしません。

これらの設定は、[構成のプロパティ]->[リンカー]領域にあります。

この情報がお役に立てば幸いです。

乾杯、

于 2012-09-24T04:10:09.230 に答える
0

うまくいかないので(まだ評判が15未満です)、Naytzyrhcソリューションがうまくいったことを確認したいだけです。

もう少し明確にするために、Visual Studio Express 2013 (v12) では次の場所に移動する必要があります。

Project -> [YourProjectName] Properties... -> Linker -> General -> Additional Library Directories

lib フォルダを追加のライブラリ ディレクトリに追加する場合:

Project -> [YourProjectName] Properties... -> Linker -> Input -> Additional Dependencies

jvm.lib を追加の依存関係に追加するため。

于 2014-09-24T11:11:42.640 に答える