Java 为什么可以';我不能更改控制台标题吗?
我目前正在做一项作业,其中我必须从Java调用C函数。我目前无法更改控制台标题。 这是更改控制台标题的C方法:Java 为什么可以';我不能更改控制台标题吗?,java,c,java-native-interface,native,Java,C,Java Native Interface,Native,我目前正在做一项作业,其中我必须从Java调用C函数。我目前无法更改控制台标题。 这是更改控制台标题的C方法: #include <windows.h> #include <string.h> #include <tchar.h> #include <jni.h> #include <stdlib.h> #include "Native.h" JNIEXPORT void JNICALL Java_Native_setConsoleTi
#include <windows.h>
#include <string.h>
#include <tchar.h>
#include <jni.h>
#include <stdlib.h>
#include "Native.h"
JNIEXPORT void JNICALL Java_Native_setConsoleTitle(JNIEnv *env, jobject obj, jstring title)
{
const char *strTitle;
strTitle = (*env)->GetStringUTFChars(env, title, NULL);
SetConsoleTitle(_T(strTitle));
(*env)->ReleaseStringUTFChars(env, title, strTitle);
}
#包括
#包括
#包括
#包括
#包括
#包括“Native.h”
JNIEXPORT void JNICALL Java_Native_setConsoleTitle(JNIEnv*env,jobject obj,jstring title)
{
常量字符*字符;
strTitle=(*env)->GetStringUTFChars(env,title,NULL);
设置控制台(_T(strTitle));
(*env)->发布Stringutfchars(env、title、strttle);
}
问题是,控制台的标题根本没有改变。它像往常一样显示“命令提示符”。我没有发现任何编译错误。有什么想法吗?C不支持方法。这东西已经过时了。Win32使用UTF-16;Java也是。你为什么不呢?一些错误检查的答案比我们想象的要好:JNI和Win32的GetLastError。