[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,尤其是做网站,在非汉语国家,将无法正常浏览。在信息化时代,国际交往日益频繁;做软件和网站,不能只着眼当前,也要为日后维护做优化、降低维护成本。

转载于:https://www.cnblogs.com/Amos-Turing/p/7919382.html

javac 编译源文件出现java:1: 需要为 class、interface 或 enum、 [javac] 锘縫错误相关推荐

  1. javac编译多个java文件以及-cp、-classpath、-sourcepath

    //编译多个文件 javac  path_of_file_a/a.java path_of_file_b/b.java path_of_file_c/c.java -cp(classpath) 与 - ...

  2. java编译源文件_Java实现编译源文件(Java源码)

    代码案例: import java.util.ArrayList; import java.util.List; import javax.tools.DiagnosticCollector; imp ...

  3. javac编译原理简介

    文章目录 1:javac的七个阶段 1.1 第一阶段:parse 1.2 第二阶段:enter 1.3 第三阶段:process 1.4 第四阶段:attr 1.4 第五阶段:flow 1.5 第六阶 ...

  4. cmd中加载java源文件_如何在cmd中编译和运行java源文件

    如何在cmd中编译和运行java源文件 首先写一个名为HelloWorld.java的java源文件,存储在如C:/java/src的地址,我们再假设待会要存储的位置是C:/java/bin,则我们做 ...

  5. JavaSE —— 使用 Javac 编译 Java 程序

    使用 Javac 编译 Java 程序 新建一个 Java 文件 右键 选择 新建 文本文档 将文件后缀名改为 .java 注意:要勾选选上 显示 文件扩展名 编写 程序: public class ...

  6. JVM基本概念,Java编译方式,Javac编译的过程

    JDK.JRE.JVM之间的关系 JVM是Java 程序的运行环境,它包括class类加载器.JIT动态编译器.执行引擎.以及垃圾收集器等,它可以将java程序生成的字节码文件解释成具体系统平台上的机 ...

  7. javac 编译java_如何使用Javac工具编译Java源代码?

    javac 编译java javac is a tool used to compile Java applications or source code. javac reads class and ...

  8. 使用javac编译Java项目

    在缺乏eclipse和idea等IDE的工具的情况下,使用jdk自带的javac命令编译Java项目 当项目只有一个Java文件的时候,可以直接使用 javac 文件名.java 但是如果有多个源文件 ...

  9. java编译器 Javac 编译原理

    目录 词法分析器 语法分析器 语义分析器 代码生成器 java源代码(符合语言规范)-->javac-->.class(二进制文件)-->jvm-->机器语言(不同平台不同种类 ...

最新文章

  1. javascript_core_01之数据类型与运算
  2. ANativeWindow是个什么东西
  3. Android通过意图使用内置的音频播放器
  4. VMware 虚拟机 1、ubuntu 扩容(扩展硬盘容量)2、修改内存大小
  5. Swift5以及IOS15对于二维码的使用
  6. LINQ TO SQL和Entity Framework 的关系 你了解多少?
  7. JAVA入门级教学之(char类型)
  8. python怎样填充颜色_python – 使用颜色填充Tkinter画布对象之间的空间
  9. 强大的日志分析工具AWStats经典备忘
  10. HTTP传递数据的几种方法
  11. MNN量化—ADMM优化算法
  12. 纯python实现线性回归——以各国人均GDP变化为例
  13. 开启和关闭Windows远程管理(WinRM)
  14. 比湿,相对湿度和绝对湿度
  15. fromPCAtoprincipalcurvetoprincipalgraph_拔剑-浆糊的传说_新浪博客
  16. 如何调试Kubernetes集群中的网络延迟问题
  17. matplotlib.pyplot.colormaps色彩图cmap
  18. 通过you-get下载视频,自动判断下载最优画质
  19. weinre远程调试mobile页面
  20. 面对新时代挑战,2019维谛技术峰会全面呈献硬核策略

热门文章

  1. Win10如何删除Windowsapps文件夹?Windowsapps文件夹删除方法
  2. redis----缓存穿透、击穿、雪崩问题解决
  3. incaseformat病毒突发来袭,该如何预防?
  4. 大一_计算机专业_职业生涯规划书(可拷贝在自己空间)
  5. 腾讯云SOC方案入选CIC工信安全优秀解决方案
  6. 查看附件html,附件查看器
  7. STM32F407与STM32F105 CAN通讯失败的定位解决
  8. 经典!材料科学基础的思维导图
  9. 分享各大OJ平台,干货满满
  10. Eclipse注释日期格式