[英]Why Java needs classpath at runtime
在Java中,我們在編譯時設置類路徑以編譯Java文件,但是為什么我們需要在運行時設置類路徑? JVM為什么需要classpath來運行.class
文件的任何特定原因?
類路徑上的文件提供了JVM需要運行的實際可執行代碼(在Java .class
文件中)。
在Java中,我們在編譯時設置類路徑以編譯Java文件
我們要不要? 我不。
但是為什么我們需要在運行時設置類路徑?
因此,JVM知道可以在哪里找到這些類。
我看到的原因之一是,如果出於某種原因需要將應用程序所需的庫分散在多個安裝點/驅動器/分區甚至文件夾中,則無法向JVM指定代碼所在的位置。 作為一種解決方法,JVM可以遍歷整個文件系統和索引內容,但是效率/速度如何?
干杯
通常,人們認為編譯不需要獨立就可以創建獨立的應用程序。 但事實並非如此。
如果您的代碼沒有依賴項,則無需設置類路徑。
您可能需要/想要在運行時包含-cp:
要指定您的類在運行時需要在哪里尋找第三方和用戶定義的文件(* .jar,*。class,*。properties等)。
覆蓋CLASSPATH環境變量所設置的內容。
CLASSPATH是Java虛擬機用於查找類文件(包括主類)的環境變量。
或者,您可以將-cp或-class-path作為參數傳遞給JVM,以指定主類所依賴的類路徑。
例如,
export CLASSPATH=/opt/javatv:/opt/mhp:/opt/main-class;
java MainClass
(要么)
java -cp /opt/javatv;/opt/mhp;/opt/main-class MainClass;
(要么)
java -class-path /opt/javatv;/opt/mhp;/opt/main-class MainClass;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.