HelloJava.java:1: 错误: 需要class, interface或enum publlic class Hellojave{ ^ 1 个错误

反馈:C:\>javacHelloJava.javaHelloJava.java:1:错误:需要class,interface或enumpubllicclassHello... 反馈:C:\>javac HelloJava.java
HelloJava.java:1: 错误: 需要class, interface或enum
publlic class Hellojave{
^
1 个错误

新手写的代码
public class HelloJava {
public static void main (String[] args) {
System.out.println("Hello Java, I like you.");
}
}

请问出现什么问题了 大神们
展开
 我来答
Mexico卡卡
2017-12-16 · TA获得超过1万个赞
知道大有可为答主
回答量:1.3万
采纳率:98%
帮助的人:1877万
展开全部
[javac] HelloWorld.java:1: 需要为 class、interface 或 enum
[javac] 锘缝ackage com.csdn.demo;
[javac] ^
[javac] 1 错误

这个错误出现的主要原因是java文件的编码问题。
在中文操作系统中,使用一贯的“javac HelloWorld.java”方式编译UTF-8(带BOM)编码的.java源文件,在没有指定编码参数(encoding)的情况下,默认是使用GBK编码。当编译器用GBK编码来编译UTF-8文件时,就会把UTF-8(带BOM)编码文件的文件头的占3个字节的头信息,按照GBK中汉字占两个字节、英文占1个字节的特性解码成了“乱码”的两个汉字。这个源文件应该是用记事本另存存为UTF-8编码造成的。

对于非GBK及其子集编码(GB2312)的正确的源文件,编译方式为“javac -encoding "UTF-8" HelloWord.java”,这样代码错误的指定代码里就不会出现乱码的中文。
但是依然会有错误,提示“HelloWorld.java:1: 非法字符: \65279。
这是因为.java对于UTF-8编码,只识别UTF-8(不带BOM)那种。而记事本只支持保存文件为带签名的UTF-8,那有没有办法解决呢?
当然是有的,那就是使用EmEditor、EditPlus、UltraEdit或Notepad++之类的工具另存为UTF(不带BOM)(区别于带UTF + BOM)的编码文件。这时候使用“javac -encoding "UTF-8" HelloWorld.java”,就没有上述编码问题了。

也许有人会说,“我干脆都用GBK不就行了吗,为什么还要用UTF-8呢?”

这是因为UTF-8支持世界多种语言的文字,被世界多数国家接受,是国际通用编码,也是Java推荐使用的编码。Java集成开发环境Eclipse中默认编码就是UTF-8。如果使用GBK,尤其是做网站,在非汉语国家,将无法正常浏览。在信息化时代,国际交往日益频繁;做软件和网站,不能只着眼当前,也要为日后维护做优化、降低维护成本。
匿名用户
2017-12-16
展开全部
保存成无 BOM 的utf-8格式的文本文件
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式