javac 编译源文件出现java:1: 需要为 class、interface 或 enum、 [javac] 锘縫错误
[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] 锘縫错误相关推荐
- 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) 与 - ...
- java编译源文件_Java实现编译源文件(Java源码)
代码案例: import java.util.ArrayList; import java.util.List; import javax.tools.DiagnosticCollector; imp ...
- javac编译原理简介
文章目录 1:javac的七个阶段 1.1 第一阶段:parse 1.2 第二阶段:enter 1.3 第三阶段:process 1.4 第四阶段:attr 1.4 第五阶段:flow 1.5 第六阶 ...
- cmd中加载java源文件_如何在cmd中编译和运行java源文件
如何在cmd中编译和运行java源文件 首先写一个名为HelloWorld.java的java源文件,存储在如C:/java/src的地址,我们再假设待会要存储的位置是C:/java/bin,则我们做 ...
- JavaSE —— 使用 Javac 编译 Java 程序
使用 Javac 编译 Java 程序 新建一个 Java 文件 右键 选择 新建 文本文档 将文件后缀名改为 .java 注意:要勾选选上 显示 文件扩展名 编写 程序: public class ...
- JVM基本概念,Java编译方式,Javac编译的过程
JDK.JRE.JVM之间的关系 JVM是Java 程序的运行环境,它包括class类加载器.JIT动态编译器.执行引擎.以及垃圾收集器等,它可以将java程序生成的字节码文件解释成具体系统平台上的机 ...
- javac 编译java_如何使用Javac工具编译Java源代码?
javac 编译java javac is a tool used to compile Java applications or source code. javac reads class and ...
- 使用javac编译Java项目
在缺乏eclipse和idea等IDE的工具的情况下,使用jdk自带的javac命令编译Java项目 当项目只有一个Java文件的时候,可以直接使用 javac 文件名.java 但是如果有多个源文件 ...
- java编译器 Javac 编译原理
目录 词法分析器 语法分析器 语义分析器 代码生成器 java源代码(符合语言规范)-->javac-->.class(二进制文件)-->jvm-->机器语言(不同平台不同种类 ...
最新文章
- javascript_core_01之数据类型与运算
- ANativeWindow是个什么东西
- Android通过意图使用内置的音频播放器
- VMware 虚拟机 1、ubuntu 扩容(扩展硬盘容量)2、修改内存大小
- Swift5以及IOS15对于二维码的使用
- LINQ TO SQL和Entity Framework 的关系 你了解多少?
- JAVA入门级教学之(char类型)
- python怎样填充颜色_python – 使用颜色填充Tkinter画布对象之间的空间
- 强大的日志分析工具AWStats经典备忘
- HTTP传递数据的几种方法
- MNN量化—ADMM优化算法
- 纯python实现线性回归——以各国人均GDP变化为例
- 开启和关闭Windows远程管理(WinRM)
- 比湿,相对湿度和绝对湿度
- fromPCAtoprincipalcurvetoprincipalgraph_拔剑-浆糊的传说_新浪博客
- 如何调试Kubernetes集群中的网络延迟问题
- matplotlib.pyplot.colormaps色彩图cmap
- 通过you-get下载视频,自动判断下载最优画质
- weinre远程调试mobile页面
- 面对新时代挑战,2019维谛技术峰会全面呈献硬核策略