Java小白学习记录:java在cmd中错误: 需要class, interface或enum

  第一天学习java,按照书中打下了第一个Java的Helloword:

public class Helloword
{
   public static void main(String args[])
   {
    System.out.println("Welcome to Java!");
   }
}

之后想换个长句来输入,于是上网搜索了《Get Lucky——Daft Punk / Pharrell Williams / Nile Rodgers》

然后新建一个 .java文件,copy之前写好的Helloword,直接更改println后的内容,直接将歌词复制在其中

public class Get Lucky
{
   public static void main(String args[])
   {
    System.out.println("歌曲名:Get Lucky
歌手:Daft Punk&Pharrell Williams
专辑:Random Access Memories
Get Lucky
Daft Punk,Pharrell Williams
Like the legend of the phoenix
All ends with beginnings
What keeps the planet spinning (uh)
The force of love beginning
(Look)
We've come too far to give up who we are
So let's raise the bar and our cups to the stars
She's up all night 'til the sun
I'm up all night to get some
She's up all night for good fun
I'm up all night to get lucky
We're up all night 'til the sun
We're up all night to get some
We're up all night for good fun
We're up all night to get lucky
We're up all night to get lucky");
   }
}

很明显这段代码看起来都是错误的,但是抱着试一试态度,还是在cmd上面输入了 “Get Lucky.java”

直接找不到文件

Java小白学习记录:java在cmd中错误: 需要class, interface或enum_第1张图片

那就是在cmd中,无法识别名称中带有空格的.java

改了名字后,再次输入

Java小白学习记录:java在cmd中错误: 需要class, interface或enum_第2张图片

好吧,在("XX")中无法加入段落

之后将所有的段落都合并成一句,再次cmd javac一下

出现了错误:需要class, interface或enum

之后百度了一下,是因为在写txt文件的时候,出现了所谓的BOM(byte-order mark),然后使用Windows自带的记事本将文件保存为UTF-8编码的时候,记事本会自动在文件开头插入BOM(代码生成txt文件并且将编码格式设置为utf-8他会自动在第一个字符前面产生一个被称作bom的标识。  用来标记这个txt文档是utf-8语言。)

其实就是,原本默认的txt编码格式应该是ANSI,然而在创建GetLucky.java的编码格式成为了UTF-8,导致文本中存在BOM,java源代码中不可以有BOM,javac无法识别,会出现乱码 。

Java小白学习记录:java在cmd中错误: 需要class, interface或enum_第3张图片(txt文本的另存为中右下角可以选择编码格式)

之后删除原来的GetLucky.java后,重新新建一个,就没有出现了这种问题,由此写下这篇博客记录下这个学习问题。

//

BOM(byte-order mark),即字节顺序标记,它是插入到以UTF-8、UTF16或UTF-32编码Unicode文件开头的特殊标记,用来识别Unicode文件的编码类型。对于UTF-8来说,BOM并不是必须的,因为BOM用来标记多字节编码文件的编码类型和字节顺序(big-endian或little-endian)。在绝大多数编辑器中都看不到BOM字符,因为它们能理解Unicode,去掉了读取器看不到的题头信息。若要查看某个Unicode文件是否以BOM开头,可以使用十六进制编辑器。下表列出了不同编码所对应的BOM。

UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码,由Ken Thompson于1992年创建。UTF-8用1到6个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。

参考资料查询来源:https://zhidao.baidu.com/question/812758169879129972.html

                                https://zhidao.baidu.com/question/1514344679698482740.html

                                https://blog.csdn.net/white_idiot/article/details/54670243

                                https://bbs.csdn.net/topics/390110799

万分感谢!!!

你可能感兴趣的:(Java小白学习记录:java在cmd中错误: 需要class, interface或enum)