gpt4 book ai didi

java - 应用程序 C++/Java 依赖

转载 作者:太空宇宙 更新时间:2023-11-04 13:45:02 26 4
gpt4 key购买 nike

我有一个构建器 C++ 应用程序,它创建一个 VM 来处理文件中的元数据。我的应用程序通过 JNI 与我的 ExtractMetadata.jar 通信。

当我用我的 IDE 测试它时,它工作正常(进程元数据工作正常)。但是当我创建安装应用程序并运行时,进程元数据运行不正常。

我记录了它,但似乎找不到该类。

jclass cls;
jmethodID midAllfield, midConstructor, mid1;
jobject newObj;
jboolean isCopy;
FILE *FileMeta;
String strFields, strValueFields, strFld;
JavaVM* jvm;
JNIEnv* env;
// Attach this Thread to JVM
jint succGetJVM = gl_env->GetJavaVM(&jvm);
int succ1 = succGetJVM;
if(succGetJVM!=0)
logging(sExtractMetaLogFile, "\n GetJavaVM(&jvm) : failure ");
else {
logging(sExtractMetaLogFile, "\n GetJavaVM(&jvm) : Success :");
logging(sExtractMetaLogFile, IntToStr(succ1));
}

jint succAttchd = jvm->AttachCurrentThread((void**)&env, NULL);
int succ2 = succAttchd;
if(succAttchd!=0)
logging(sExtractMetaLogFile, "\n AttachCurrentThread : failure ");
else{
logging(sExtractMetaLogFile, "\n AttachCurrentThread : Success : ");
logging(sExtractMetaLogFile, IntToStr(succ2));
}

cls = (*env).FindClass("ExtractMetaData");

jthrowable exc = env->ExceptionOccurred();
if (exc) {
jclass newExcCls;
try {
env->ExceptionDescribe();
}
catch (...) {
ShowMessage("env->ExceptionDescribe()");
return;
}
logging(sExtractMetaLogFile, "\n ExceptionDescribe : ");
env->ExceptionClear();
}
if(cls !=0)
{
//....
}
else
{
logging(sExtractMetaLogFile, "\n Tika Thread Not Found class : ExtractMetaData ");
}

我的日志结果是

GetJavaVM(&jvm) : Success :0
AttachCurrentThread : Success :
ExceptionDescribe :
Tika Thread Not Found class : ExtractMetaData

为什么当我从我的 IDE 启动我的应用程序时它工作正常,而当我从我安装的应用程序运行它时却不能工作?!!

最佳答案

所以回答:

打开快捷方式的属性并将“开始于”字段设置为“C:\Program Files (x86)\xxx\bin\”

关于java - 应用程序 C++/Java 依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26356506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com