出于工作需要,新项目要开始使用 Java 进行开发,注意力就要从 PHP 转移到 Java 上来。个人觉得这是一个挺好的机会,能接触被广泛使用的另一种开发语言和生态。
虽说语言之间存在许多相似之处,但真正落地的过程肯定会存在不少的曲折,希望站在小白的角度,用一系列文章记录这个过程。
关于 Java 版本,虽然此时最新的版本已经来到了 Java 19,LTS 版本也到了 Java 17,但还是保守的选择了 Java8 版本,主要是考虑:
日常使用的 Win10 系统,装好 JDK 后,Terminal 中执行 Java 发现有中文乱码现象:
进一步查看 powershell 窗口属性,以及系统区域:
可以看到,Powershell 使用了 UTF-8 编码显示,但系统使用的时中文(GBK,cmd 中使用 GBK 输出不乱码)。Java 默认使用系统编码输出,这就产生了编码不一致,因此出现乱码。两个解决办法:
临时指定编码:
java "-Dfile.encoding=UTF-8"
还可以可通过 JAVA_TOOL_OPTIONS 环境变量指定:
JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"
使用该环境变量,相当于在每次 JVM 执行,都传了参数过去。执行命令时也会打印到控制台: