针对“命令行运行javac,报错: 编码 GBK 的不可映射字符 (0x9C)”问题,这篇文章分3部分内容进行了讲解:错误情况示例;原因分析;解决办法。
错误情况示例:
用命令行运行javac编译java源文件时,发生错误:
1 | E:\myJavaCode>javac Welcome.java |
原因分析:
去看了下文件编码,是UTF-8,而Windows的cmd一般gbk,如果不指定会发生错误。
详情可参考下面内容:
D:\Users>javac -help
用法: javac
其中, 可能的选项包括:
-g 生成所有调试信息
-g:none 不生成任何调试信息
-g:{lines,vars,source} 只生成某些调试信息
-nowarn 不生成任何警告
-verbose 输出有关编译器正在执行的操作的消息
-deprecation 输出使用已过时的 API 的源位置
-classpath <路径> 指定查找用户类文件和注释处理程序的位置
-cp <路径> 指定查找用户类文件和注释处理程序的位置
-sourcepath <路径> 指定查找输入源文件的位置
-bootclasspath <路径> 覆盖引导类文件的位置
-extdirs <目录> 覆盖所安装扩展的位置
-endorseddirs <目录> 覆盖签名的标准路径的位置
-proc:{none,only} 控制是否执行注释处理和/或编译。
-processor[, , …] 要运行的注释处理程序的名称; 绕过默认的搜索进程
-processorpath <路径> 指定查找注释处理程序的位置
-parameters 生成元数据以用于方法参数的反射
-d <目录> 指定放置生成的类文件的位置
-s <目录> 指定放置生成的源文件的位置
-h <目录> 指定放置生成的本机标头文件的位置
-implicit:{none,class} 指定是否为隐式引用文件生成类文件
-encoding <编码> 指定源文件使用的字符编码
-source <发行版> 提供与指定发行版的源兼容性
-target <发行版> 生成特定 VM 版本的类文件
-profile <配置文件> 请确保使用的 API 在指定的配置文件中可用
-version 版本信息
-help 输出标准选项的提要
-A关键字[=值] 传递给注释处理程序的选项
-X 输出非标准选项的提要
-J<标记> 直接将 <标记> 传递给运行时系统
-Werror 出现警告时终止编译
@<文件名> 从文件读取选项和文件名
解决办法:
由上面的内容我们可以知道,参数-encoding <编码>
指定源文件使用的字符编码。
将javac命令改成:javac -encoding UTF-8 文件名.java
即可
1 | E:\myJavaCode>javac -encoding UTF-8 Welcome.java |
参考:https://blog.csdn.net/fzyjsy/article/details/82932276
发布时间: 2019-08-31
最后更新: 2019-08-31
本文标题: 命令行运行javac,报错. 编码 GBK 的不可映射字符 (0x9C)
本文链接: https://www.yansheng.fun/article/fe95282d.html
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!
