gpt4 book ai didi

由 C++ 调用的 Java GUI 程序在关闭时终止其 C++ 控制台应用程序的主线程

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:26:38 24 4
gpt4 key购买 nike

我正在创建一个简单的 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 Destroyed!!”从不在控制台 Windows 上显示...一旦我关闭 Java GUI 应用程序后,控制台应用程序就不再工作了。它只显示“按任意按钮关闭”。

控制台程序似乎终止于“jvm->DestroyJavaVM();” line.. 所以 JVM Destroyed 消息永远不会弹出。

我什至通过创建一个新线程并运行 java 来尝试它,但是,在我关闭 Java GUI 程序后它无论如何都会杀死我的主线程。

如何解决 Java Gui 应用程序自动终止控制台程序的问题?

下面是可下载的源代码地址:(MSVS 2008 for C++ and Netbeans for Java) http://cfile209.uf.daum.net/attach/241D3F3D5214C4ED07ECE1

最佳答案

您正在将框架的默认关闭操作设置为 EXIT_ON_CLOSE。当框架关闭时,这会使程序终止 - 不仅仅是 JVM,整个 程序。

使用 DISPOSE_ON_CLOSE 而不是 EXIT_ON_CLOSE

关于由 C++ 调用的 Java GUI 程序在关闭时终止其 C++ 控制台应用程序的主线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18375008/

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