java如何運行jar包 springboot打包的可執(zhí)行jar 是運行在什么容器?
springboot打包的可執(zhí)行jar 是運行在什么容器?springboot打包的可執(zhí)行jar在其內(nèi)置的tomcat容器中運行,因此可以作為jar包啟動,直接在互聯(lián)網(wǎng)應(yīng)用服務(wù)器上運行。springb
springboot打包的可執(zhí)行jar 是運行在什么容器?
springboot打包的可執(zhí)行jar在其內(nèi)置的tomcat容器中運行,因此可以作為jar包啟動,直接在互聯(lián)網(wǎng)應(yīng)用服務(wù)器上運行。springboot框架將tomcat的所有jar包都放在框架內(nèi)部,由內(nèi)部類直接調(diào)用,所以給程序員開發(fā)后的坐測帶來了很多方便。
我把JAR文件解壓了,怎么再把它還原成JAR文件呀?
一個普通的jar包有兩個目錄,一個是M
jvm:java代碼是如何運行的?
一、Java代碼運行流程a .基本流程
一個Java項目包含許多帶有 amp后綴的源代碼文件。java和。除了在IDE中調(diào)試之外,一般來說都是將代碼打成jar包或者war包,最后將打包好的jar包或者war包發(fā)送到線上服務(wù)器進行部署。
部署的有很多種,最基本的一種是通過Tomcat容器進行部署,也可以通過java命令手動運行jar包中的代碼。
b、編譯
上述過程中有一個關(guān)鍵點 "編譯與編輯。
在java代碼打包過程中,源代碼一般被編譯成一個后綴為 "。階級和階級。JVM只能識別和解釋字節(jié)碼文件類。
C.JVM進程
對于編譯后的類字節(jié)碼,需要使用java -jar等命令來運行編寫的代碼;一旦使用了java命令,JVM進程實際上將在此時啟動。
JVM進程將負責(zé)運行這些類字節(jié)碼文件,相當(dāng)于運行我們寫的代碼。
d、類加載
為了運行這些類字節(jié)碼文件中的代碼,JVM將使用類加載器將編譯后的類字節(jié)碼文件加載到JVM內(nèi)存中。
E.解釋和實施
最后,JVM將基于它自己的字節(jié)碼執(zhí)行引擎執(zhí)行加載到內(nèi)存中的類。當(dāng)JVM需要一個類時,它將使用類加載器來加載相應(yīng)的類。
從虛擬機的角度來看,要執(zhí)行java代碼,需要先將從中編譯出來的類文件加載到j(luò)ava虛擬機中。加載的java類將存儲在方法區(qū)域。在實際操作中,虛擬機執(zhí)行方法區(qū)域的代碼。
在運行過程中,每當(dāng)一個調(diào)用進入一個java方法,java虛擬機就會在當(dāng)前線程的java方法堆棧中生成一個堆棧框架,用來存儲字節(jié)碼的局部變量和操作數(shù)。這個棧幀的大小是預(yù)先計算好的,java虛擬機不要求棧幀在內(nèi)存空間中連續(xù)分布。
在hotspot中,上述翻譯過程有兩種形式:第一種是解釋和執(zhí)行,也就是一個一個來。將字節(jié)碼翻譯成機器碼并執(zhí)行;第二種是實時編譯(JIT),即一個方法中包含的所有字節(jié)碼在執(zhí)行前都被編譯成機器碼。