hereから取得したコードを使用して、C から Java コードを実行しようとしています。JVM の実行を試みるコードは次のとおりです。
JNIEnv *env;
JavaVMInitArgs vm_args;
JavaVMOption options;
options.optionString = "-Djava.class.path=D:\\Java Src\\TestStruct";
vm_args.version = JNI_VERSION_1_6;
vm_args.nOptions = 1;
vm_args.options = &options;
vm_args.ignoreUnrecognized = 0;
int ret = JNI_CreateJavaVM(jvm, (void**)&env, &vm_args);
コードは正常にコンパイルされますが、実行しようとすると次のエラーが発生します。
VM の初期化中にエラーが発生しました ネイティブ ライブラリを読み込めません: 依存ライブラリが見つかりません
この質問を見て、依存関係ウォーカーを使用して、不足しているバイナリを見つけました。私が行方不明ieshims.dll
であり、これによれば、上記のdllがvista以降で使用されているwer.dll
私のコンピューターから(私はXPを使用しています)。
それで、いくつかの質問が頭に浮かびます:
- どうすればこれを取り除くことができますか?
- そもそもなぜこのエラーが発生するのですか? XP で JVM をロードできませんか?
私はWindows XPを使用しており、Visual Studio 2008、JDK 1.7がインストールされています(1.6でも試しました)。