如何在用 javac 编译时指定多个类路径
笔者最近在学习Java的过程中,遇到了需要通过 javac -cp 来指定类路径的情景,并且要指定的类路径不止一个,笔者在此写下自己的解决方法。
众所周知,编译一个.java文件的时候,编译器会在指定的类路径中(或类路径们中)寻找需要的类。这个类路径可以理解为一个根目录,而其下便是.class文件们的目录结构。
为了方便解说,我在vscode中创建了这样一个目录结构:

Untitled作为根目录,其下有两个文件夹:hello和lib,其中hello放着我们自己写的Hello.java:

lib下是servlet-api.jar(这是我从tomcat根目录下的lib目录中复制过来的)

而我们又写了个World.java,简单地放置在Untitled下:

可以看到,World类中,用到三个包,hello和javax.servlet还有javax.servlet.http,而后面两个我们要从servlet-api.jar中获得。
那么接下来,我们就来编译World.java文件吧 !
- 首先,编译Hello.java:

- 然后,可以编译World.java了:


用 “” 将路径包含起来,用 ; 将不同的路径彼此分开,. 表示的是当前目录(在本文中指的是Untitled)
碰到一个不认识的类,compiler会先在第一个路径中搜寻,如果没有,则在第二个中搜寻,如果没有……
笔者在google 解决方法时,看到很多方法都只强调路径之间用;隔开,却没有人说要用”” 将路径括起来,而在笔者的PC(笔者用的是Windows 10)上,如果不加”” 则会报错。因而如果按照本文做法无法完成编译的同学,可以试试把”” 去掉。
版权声明:本文为weixin_29267307原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。