问题1. 错误:编码GBK的不可映射字符
- 错误描述:当*.java中包含中文字符时,我们在用javac.exe编译时会出现常提示”错误:编码GBK的不可映射字符”,
- 错误原因: 这个错误出现的原因主要是在中文操作系统中,使用一贯的“javac HelloWorld.java”方式编译UTF-8(带BOM)编码的.java源文件, 在没有指定编码参数(encoding)的情况下,默认是使用GBK编码。当编译器用GBK编码来编译UTF-8文件时,就会把UTF-8(带BOM)编码文件的文件头的占3个字节的头信息 ,按照GBK中汉字占两个字节、英文占1个字节的特性解码成了“乱码”的两个汉字。
- 解决方法: 应该使用-encoding参数指明编码方式:javac -encoding UTF-8 *.java
问题2. javac编译提示错误需要为 class、interface 或 enum 或者 “HelloWorld.java:1: 非法字符: \65279。
- 错误描述:HelloWorld.java:1: 需要为 class、interface 或 enum 锘缝ublic class HelloWorld{ ^ 1 错误
- 错误原因:这是因为.java对于UTF-8编码,只识别UTF-8(不带BOM)那种。记事本只支持保存文件为带签名的UTF-8
- 解决方法:使用EmEditor、EditPlus、UltraEdit或Notepad++之类的工具另存为UTF(不带BOM)(区别于带UTF + BOM)的编码文件。 这时候使用“javac -encoding “UTF-8” HelloWorld.java”,就没有上述编码问题了。
问题3. 找不到或无法加载主类
- 解决方法:package 问题,如果类上有 package,运行时须带全路径, 如:java com.laughitover.example.debug.DisplayJdb(不能带后缀.java 或者 .class)