Java標準/系統庫(java.*
,javax.*
等)存儲在每個JRE分佈內的lib/rt.jar
中。Java在運行時如何將lib/rt.jar鏈接到您的應用程序?
假設我有一個已編譯的應用程序,jar
紅色爲myapp.jar
。這個JAR文件僅包含我的應用程序的類文件,而只是引用像System
,File
,Runtime
,Thread
,String
,Boolean
等
所以,當我跑我的應用程序,比如通過java -jar myapp.jar
,在JVM顯然是系統類這樣做最後一分鐘鏈接(或某事)它正在執行我的類文件的字節碼(myapp.jar
內),然後「跳轉」到lib/rt.jar
以運行位於那裏的字節碼。我想如果myapp.jar
取決於運行時提供的其他JAR,則該過程是相同的classpath
。
我的問題是:這個叫做「連接」的過程是什麼,它是如何工作的?