有时需要有通过javac进行手动编译java文件的需求,同时编译过程中需要通过参数-cp指定编译的classpath目录。在使用过程中发现,不同操作系统中还有一些区别,列举如下。

windows平台

操作系统:win10
jdk版本:1.8.0_171
操作方式:Powershell

java -cp "dir/to/jar/;dir/to/jar/;dir/to/jar" Source1.java Source2.java

注意:上边-cp指定的路径分隔符为分号;。如果多个目录不加引号"",会报如下错。

java -cp dir/to/jar/;dir/to/jar/;dir/to/jar Source1.java Source2.java
javac:无源文件

linuxs平台

操作系统:CentOS7.6
jdk版本:1.8.0_262
操作方式:bash

java -cp "dir/to/jar/:dir/to/jar/:dir/to/jar" Source1.java Source2.java

注意:上边-cp指定的路径分隔符为冒号:。如果多个目录不加引号"",也可以正常编译通过。