Java的常见问题
前言
对于经常使用 Java
的人来说,经常会遇到 Java
的中文编码等问题,这里就简要记录下。
Java
的安装等问题就不过多介绍了。这里我使用的 Java
环境如下:
java 12.0.1 2019-04-16
Java(TM) SE Runtime Environment (build 12.0.1+12)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)
编码问题
由于个人非常喜欢 UTF8
编码,所以就统一选择该编码格式。 其实说起来, Java
的中文输出乱码问题主要分析流程可以简单划分成这几个部分:
对于输出的场景,一般是终端。需要注意 Windows
系列一般不是 UTF8
编码。
我们这里,就按照我们分析的流程一步一步来,这样就不会有太大的问题。首先就是源代码的文件编码格式,不管你使用什么软件写代码,希望你能清楚的知道你写的代码的文件编码格式,并且也能清楚的知道如何修改。这里我使用的是 Vim
。我的文件编码如下:
好了,下一步就是编译阶段,编译器用何种编码规则读取我的源代码文件了。这里就引入了编译时候的一个参数 -encoding
:
javac -encoding utf8 Test.java
最后一个阶段就是我们程序输出的时候,终端如何解码我们的输出。一般程序输出的信息都是可以被正确解码的,显示是没有问题的,如果是采用管道重定向到文件,需要注意正确编码。
手动添加依赖 Jar 包
目前大众采用的方式是集成的 IDE
,由于作者太穷了,买不起配置好的电脑,同时安装使用的软件太多,就没有选择 IDE + Maven
的方式。 而是采用 文本编辑器 + 命令行编译。
Windows
javac -encoding utf8 -cp ".;selenium-server-standalone-3.141.59.jar" .\Test.java
符号 | 意义 |
---|---|
-cp | cp: classpath 即指定本地库路径 |
; | 分割符 |
Linux
javac -encoding utf8 -cp .:selenium-server-standalone-3.141.59.jar .\Test.java
在 Linux
环境下,不再像 Windows
需要双引号。同时分隔符也由分号换成了冒号。
BSD
既然已经深入到了这个层次,那么就勇敢的放弃 Java
吧。因为你会慢慢体会到 Java
在这个系列渣渣的支持。
不过,通过考虑这个问题,作责得出了一个结论: Java
所谓的跨平台口号,只是一个口号而已。它只不过把系统需要处理的跨平台的问题转移到了虚拟机,由他们来决定支持哪些不支持哪些平台。