出于工作需要,新项目要开始使用 Java 进行开发,注意力就要从 PHP 转移到 Java 上来。个人觉得这是一个挺好的机会,能接触被广泛使用的另一种开发语言和生态。
虽说语言之间存在许多相似之处,但真正落地的过程肯定会存在不少的曲折,希望站在小白的角度,用一系列文章记录这个过程。
Java 版本用哪个
关于 Java 版本,虽然此时最新的版本已经来到了 Java 19,LTS 版本也到了 Java 17,但还是保守的选择了 Java8 版本,主要是考虑:
- 遇到问题更方便检索
- 高版本的新特性目前不是亟需
- 官方支持到 2030 年
官网 JDK8 下载地址
解决命令行中文乱码
日常使用的 Win10 系统,装好 JDK 后,Terminal 中执行 Java 发现有中文乱码现象:
进一步查看 powershell 窗口属性,以及系统区域:
可以看到,Powershell 使用了 UTF-8 编码,但系统使用了中文(GBK,cmd 中使用 GBK 输出不乱码)。这就产生了编码不一致,因此出现乱码。两个解决办法:
- 修改系统区域为 UTF8(即勾选 Beta 版)
- 该方法会影响整个系统,对于某些使用中文的应用程序可能存在问题
- 指定 Java 编码
- 仅影响 Java
指定 Java 编码,可通过 JAVA_TOOL_OPTIONS 环境变量实现:
JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF-8"
使用该环境变量,相当于在每次 JVM 执行,都传了参数过去。执行命令时也会打印到控制台:
乱码是因为编码不一致,明确具体要转换的编码,就可以借助JAVA_TOOL_OPTIONS=“-Dfile.encoding=xxx” 来解决