Java - 显示问号而不是字符的错误消息

标签 java

$ javac Increment.java

输出:

Increment.java:6: ??: ?????
    System.out.println(++a++);
                          ^
  ??: ??
  ??:    ?
1 ???

这是代码

class Increment{
  public static void main(String[] args) {
    int a = 5;


    System.out.println(++a++);
  }
}

有人知道可能发生什么情况以及如何解决吗? Increment只是一个测试类,所以会出现错误。 我在 git-bash 终端中运行它,但我也在 cygwin 终端和 Windows 终端中尝试过。 字符集是UTF-8。

最佳答案

很可能您设置了国家语言环境(例如俄语、中文或其他任何语言),使 Java 编译器返回国家化错误消息,但您的终端 (cygwin) 不支持 UTF-8 输出,或者您的系统不支持不支持 UTF-8 语言环境。

作为最快的解决方法,您可以将 java 编译器切换为 provide error messages in English :

$ javac -J-Duser.language=en Increment.java

关于Java - 显示问号而不是字符的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53787195/

相关文章:

java - 非完美迷宫生成

java - 输出应该是数组中的内容

java - 使用 Java 发送电子邮件时出现 AuthenticationFailedException

java - 如何在不暂停服务器的情况下使用Gradle命令行参数调试Spring Boot?

java - Eclipse 和设置全局 jvm 系统属性,即 -Dxxx=yyy

java - 为什么 jacoco :cover report 0 tests, 0 次失败,0 次错误用于 Play 2.2 中的测试?

java - 如何从内部类访问外部类的 "this"?

java - Idea中读取属性文件出现空指针异常

java - 启动 Liferay 7 (liferay-portal-7.0-ce-ga1) 时出错 : PWC6345: There is an error in invoking javac. 需要完整的 JDK(不仅仅是 JRE)

java - textArea 格式问题上的控制台输出