Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么可以';我不能更改控制台标题吗?_Java_C_Java Native Interface_Native - Fatal编程技术网

Java 为什么可以';我不能更改控制台标题吗?

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

我目前正在做一项作业,其中我必须从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_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。