一、作用
-classpath選項是Java編譯器和Java虛擬機在編譯和運行Java程序時,必須指定的一個參數。Java命令通過-classpath選項指定類加載器查找類文件的路徑。如果class文件不在默認的classpath路徑中,就需要通過這個選項指定classpath路徑。
二、使用方法
Java命令中-classpath選項有以下幾種使用方式:
-classpath 路徑
-cp 路徑
--class-path 路徑
其中路徑是指包含Java類文件的目錄或者.jar/.zip文件。
例如,在Windows操作系統下,假設有一個類文件Hello.java和一個包含Hello.class的目錄D:\project\classes,要在該目錄下運行Hello.class,那麼命令如下:
java -classpath D:\project\classes Hello
又或者,如果Hello.class在jar包中,例如hello.jar,那麼命令如下:
java -classpath D:\project\libs\hello.jar Hello
也可以將多個路徑用分號分隔進行同時指定:
java -classpath D:\project\classes;D:\project\libs\hello.jar Hello
三、常見問題
1. classpath路徑有哪些?
Java類文件必須位於在類路徑(classpath)包含的目錄或者.jar/.zip文件中。一般情況下,Java類文件位於獨立的目錄或者在應用程序中的jar文件之中,這樣可以方便地對它進行分類和組織。
classpath路徑通常包含以下類型的目錄或文件:
- Java核心類和擴展類之間的類文件
- 應用程序類文件:包含應用程序代碼的目錄或者jar文件
- 依賴類文件:包含應用程序依賴的第三方庫類文件的目錄或者jar文件
2. classpath路徑的默認值是什麼?
默認情況下,Java命令使用當前目錄作為classpath路徑。可以使用Java API獲取默認的classpath
String classpath = System.getProperty("java.class.path");
3. Java類文件的編譯和class文件的執行classpath路徑是否必須一致?
不一定。編譯和執行classpath路徑可以不一致,但是要保證執行classpath路徑包含編譯classpath路徑,否則會出現ClassNotFoundException。更進一步的,如果classpath包含兩個及以上的目錄或者jar文件,需要保證它們的classpath路徑之間使用分號進行分隔。
四、使用示例
下面是一些實際應用的示例代碼:
// 指定類路徑
java -classpath D:\project\classes;D:\project\libs\hello.jar HelloWorld
// 指定多個jar文件
java -classpath D:\project\libs\hello.jar;D:\project\libs\world.jar HelloWorld
// 指定壓縮包路徑
java -classpath D:\project\libs\all.jar HelloWorld
// 使用.class文件的父目錄作為CLASSPATH目錄
java -classpath ./classes HelloWorld
五、小結
-classpath在Java程序員的日常工作中已經非常普遍。不管是執行Java程序還是編譯Java程序,為了找到所需要的類文件,都需要指定classpath路徑,classpath的使用也是Java程序員最基本的技能之一。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/278984.html