卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

java如何運(yùn)行jar包 springboot打包的可執(zhí)行jar 是運(yùn)行在什么容器?

springboot打包的可執(zhí)行jar 是運(yùn)行在什么容器?springboot打包的可執(zhí)行jar在其內(nèi)置的tomcat容器中運(yùn)行,因此可以作為jar包啟動(dòng),直接在互聯(lián)網(wǎng)應(yīng)用服務(wù)器上運(yùn)行。springb

springboot打包的可執(zhí)行jar 是運(yùn)行在什么容器?

springboot打包的可執(zhí)行jar在其內(nèi)置的tomcat容器中運(yùn)行,因此可以作為jar包啟動(dòng),直接在互聯(lián)網(wǎng)應(yīng)用服務(wù)器上運(yùn)行。springboot框架將tomcat的所有jar包都放在框架內(nèi)部,由內(nèi)部類直接調(diào)用,所以給程序員開發(fā)后的坐測(cè)帶來(lái)了很多方便。

我把JAR文件解壓了,怎么再把它還原成JAR文件呀?

一個(gè)普通的jar包有兩個(gè)目錄,一個(gè)是M

jvm:java代碼是如何運(yùn)行的?

一、Java代碼運(yùn)行流程a .基本流程

一個(gè)Java項(xiàng)目包含許多帶有 amp后綴的源代碼文件。java和。除了在IDE中調(diào)試之外,一般來(lái)說(shuō)都是將代碼打成jar包或者war包,最后將打包好的jar包或者war包發(fā)送到線上服務(wù)器進(jìn)行部署。

部署的有很多種,最基本的一種是通過(guò)Tomcat容器進(jìn)行部署,也可以通過(guò)java命令手動(dòng)運(yùn)行jar包中的代碼。

b、編譯

上述過(guò)程中有一個(gè)關(guān)鍵點(diǎn) "編譯與編輯。

在java代碼打包過(guò)程中,源代碼一般被編譯成一個(gè)后綴為 "。階級(jí)和階級(jí)。JVM只能識(shí)別和解釋字節(jié)碼文件類。

C.JVM進(jìn)程

對(duì)于編譯后的類字節(jié)碼,需要使用java -jar等命令來(lái)運(yùn)行編寫的代碼;一旦使用了java命令,JVM進(jìn)程實(shí)際上將在此時(shí)啟動(dòng)。

JVM進(jìn)程將負(fù)責(zé)運(yùn)行這些類字節(jié)碼文件,相當(dāng)于運(yùn)行我們寫的代碼。

d、類加載

為了運(yùn)行這些類字節(jié)碼文件中的代碼,JVM將使用類加載器將編譯后的類字節(jié)碼文件加載到JVM內(nèi)存中。

E.解釋和實(shí)施

最后,JVM將基于它自己的字節(jié)碼執(zhí)行引擎執(zhí)行加載到內(nèi)存中的類。當(dāng)JVM需要一個(gè)類時(shí),它將使用類加載器來(lái)加載相應(yīng)的類。

從虛擬機(jī)的角度來(lái)看,要執(zhí)行java代碼,需要先將從中編譯出來(lái)的類文件加載到j(luò)ava虛擬機(jī)中。加載的java類將存儲(chǔ)在方法區(qū)域。在實(shí)際操作中,虛擬機(jī)執(zhí)行方法區(qū)域的代碼。

在運(yùn)行過(guò)程中,每當(dāng)一個(gè)調(diào)用進(jìn)入一個(gè)java方法,java虛擬機(jī)就會(huì)在當(dāng)前線程的java方法堆棧中生成一個(gè)堆??蚣?,用來(lái)存儲(chǔ)字節(jié)碼的局部變量和操作數(shù)。這個(gè)棧幀的大小是預(yù)先計(jì)算好的,java虛擬機(jī)不要求棧幀在內(nèi)存空間中連續(xù)分布。

在hotspot中,上述翻譯過(guò)程有兩種形式:第一種是解釋和執(zhí)行,也就是一個(gè)一個(gè)來(lái)。將字節(jié)碼翻譯成機(jī)器碼并執(zhí)行;第二種是實(shí)時(shí)編譯(JIT),即一個(gè)方法中包含的所有字節(jié)碼在執(zhí)行前都被編譯成機(jī)器碼。