方法如下:
1、虛擬機器的啟動入口位於share/tools/launcher/java.c的main。
2、配置JVM裝載環境。
3、解析虛擬機器引數。
4、設定執行緒棧大小。
5、執行Java main。
配置JVM裝載環境的方法:
1、Java程式碼執行時需要一個JVM環境,JVM環境的建立包括兩部分:JVM.dll檔案的查詢和裝載,我們來看一段Jre透過環境的路徑和系統版本尋找jvm.cfg檔案的程式碼。
說明: 1)GetJREPath()查詢當前JRE環境的所在路徑。
2)ReadKnownVms()讀取JRE路徑\lib\ARCH(CPU構架)\JVM.cfg檔案,其中ARCH(CPU構架)透過GetArch方法獲取,在window下有三種情況:amd64、ia64和i386。
3)CheckJvmType確定當前JVM型別,先判斷否透過-J、-XXaltjvm=或-J-XXaltjvm=引數指定,如果沒有,則讀取JVM.cfg檔案中配置的第一個型別。
4)GetJVMPath根據上一步確定的JVM型別,找到對應的JVM.dll檔案。
方法如下:
1、虛擬機器的啟動入口位於share/tools/launcher/java.c的main。
2、配置JVM裝載環境。
3、解析虛擬機器引數。
4、設定執行緒棧大小。
5、執行Java main。
配置JVM裝載環境的方法:
1、Java程式碼執行時需要一個JVM環境,JVM環境的建立包括兩部分:JVM.dll檔案的查詢和裝載,我們來看一段Jre透過環境的路徑和系統版本尋找jvm.cfg檔案的程式碼。
說明: 1)GetJREPath()查詢當前JRE環境的所在路徑。
2)ReadKnownVms()讀取JRE路徑\lib\ARCH(CPU構架)\JVM.cfg檔案,其中ARCH(CPU構架)透過GetArch方法獲取,在window下有三種情況:amd64、ia64和i386。
3)CheckJvmType確定當前JVM型別,先判斷否透過-J、-XXaltjvm=或-J-XXaltjvm=引數指定,如果沒有,則讀取JVM.cfg檔案中配置的第一個型別。
4)GetJVMPath根據上一步確定的JVM型別,找到對應的JVM.dll檔案。