我正在创建一个简单的 Win32 控制台应用程序,它加载具有它的表单文件的 Java GUI。
但是,我遇到了一些问题..这是代码的一部分..
if(status != JNI_ERR)
{
cls = env->FindClass("PWNJava");
if(cls != 0)
{
cout<<"class found!"<<endl;
mid = env->GetStaticMethodID(cls, "main", "([Ljava/lang/String;)V");
env->CallStaticVoidMethod(cls, mid);
}
else
{
printf("Can't find class\n");
return;
}
jvm->DestroyJavaVM();
cout<<"\nJVM Destroyed!!"<<endl;
}
好的.. 我的问题是,当 Java GUI 应用程序启动时,控制台应用程序会停止。
关于底部的代码,cout<<"\nJVM Destroyed!!"<
这个“JVM被破坏了!!” 永远不会在控制台 Windows 上显示...在我关闭 Java GUI 应用程序后,控制台应用程序不再工作。它只显示“按任意按钮关闭”。
控制台程序似乎在“jvm->DestroyJavaVM();”处终止 行..所以 JVM Destroyed 消息永远不会弹出。
我什至通过创建一个新线程并运行 java 来尝试它,但是在我关闭 Java GUI 程序后它无论如何都会杀死我的主线程。
如何解决 Java Gui 应用程序自动终止控制台程序的问题?
以下是可下载源代码的地址:(MSVS 2008 for C++ 和 Netbeans for Java) http://cfile209.uf.daum.net/attach/241D3F3D5214C4ED07ECE1