编译尝试会出现“错误:类,接口或枚举预期”的错误,但错误指向中文字符?

时间:2017-09-09 04:34:20

标签: java enums

我一直在尝试为我开始的在线Java类做一个HelloWorld,但是我遇到了一个奇怪的错误。我确实在这个网站上环顾四周,虽然我确实看到了这个错误的类似实例,但它们都没有我遇到的完全相同的问题。

所以对于我的班级,我输入下面的代码(按照视频中的说明,将每个字母,括号和符号复制到记事本中)并保存,设置javac,并尝试运行javac。

public class HelloWorld {

   public static void main(String[] args) {

      System.out.println("Hello world!");

   }
}

现在当我运行javac时,它给了我这个错误。

enter image description here

(对于我来说,\在命令提示符上显示为类似奇怪的类W符号,但它仍能正常运行)。

小箭头应该指向文本文件中的错误,但问题是它出于某种原因显示为中文字符。我无法弄清楚导致这种情况的原因,但我的猜测是超出了本文档的范围。但是,我的系统不使用中文,系统区域也不是中文,所以我不知道它是什么。我不认为它可以是任何括号,因为它们对我来说看起来很准确,除非我完全错过了。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

看起来您的程序文件中包含一些被解释为多字节字符的内容。错误中的字符似乎在public中的“p”之前,这就是编译器提供错误消息的原因。它期待一个关键字并获得一个汉字。

你使用了什么编辑器?我认为真正的问题在于你的编辑器是如何设置的。此错误消息只是一个症状。另一种可能性是您的系统设置为将某些字节序列解释为中文。这可以解释为“\”被解释为一个字符,并且以大括号开头并且通过“p”被视为它们的序列。

答案 1 :(得分:0)

  1. Windows记事本是最差的txt编辑器,它会更改换行符,并会将 UTF-8 BOM 插入您编辑的文本文件中。
  2. 对于您的实例,这就是您的java文件无法编译的原因。
  3. 没有一个固定的ANSI编码 - 它们有很多。通常当人们说“ANSI”时,他们的意思是“我的系统的默认语言环境/代码页”,它是通过Encoding.Default获得的,通常是Windows-1252,但可以是其他语言环境。