javac编译时编码错误(编码格式不一致)

一、文档编写目的
昨天在群里看到一个刚学java的朋友碰到一个问题,他用文本编辑器写了一个java类,这大概就是所有java初学者刚开始都要经历的阶段吧,然后使用javac编译,在用java运行,出现了一个错误,在这里进行总结一下,希望对大家和我都有点帮助。

二、场景还原
java代码如下

public class Byte {
    public static void main(String[] args) {
        byte x = 22;    //x是十进制
        byte y = 022;    //y是八进制
        byte z = 0X22;    //z是十六进制
        System.out.println("转化成十进制,x= " + x);
        System.out.println("转化成十进制,y= " + y);
        System.out.println("转化成十进制,z= " + z);
    }
}


很简单的一个java类,现在把该类保存到 E:\demo

 

目录下现在我们用javac进行编译

 

三、原因分析
 这是由于java代码中存在中文字符,而javac在编译时默认编码是GBK,所以会出现如上错误,如何解决?估计大家都会首先会想到编译时指定编码,或者要验证是不是中文引起的异常,可以将代码中中文全部去掉来进行验证。那么,如何给javac命令指定编码呢?玩过linux的人都知道,help命令是个很不错的,建议大家常用help命令,当然也可以去百度。

输入 javac -help,看看javac 后面都可以跟什么参数:

 

可以看到一个带 -encoding <编码> 的参数,这个就是指定编码格式的,用这个命令再次尝试编译:

 

 

然后在使用java命令运行:


 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值