Java连载3-编译与运行阶段详解JRE,JDK,JVM关系
·一、
1.JDK下載地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html
二、Java的加載與執行
1.Java程序運行包括:
(1)編譯階段:檢查Java源程序是否符合Java語法,符合語法就生成正常的字節碼文件(xxxx.class),字節碼文件中不是純粹的二進制,這種文件無法在操作系統中直接執行
i.需要用JDK中自帶的javac.exe命令進行java程序編譯
ii.用法:doc窗口,規則:javac java源程序路徑
iii.javac是一個java編譯工具
iv.一個java程序可以編譯生成多個.class文件
v.字節碼文件是最終要執行的文件,所以說class文件生成之后,java源文件刪除并不會影響java程序的執行。
vi.編譯結束之后,可以將.class文件拷貝到其他操作系統中執行。
(2)運行階段:JDK安裝之后,除了自帶一個javac.exe之外,還有另一個工具/命令,java.exe負責運行階段
java.exe在dos窗口使用,規則為:
例如:存在一個文件A.class,則命令為:java A
注意:不要寫為:java A.class,且不要接文件地址,接的是類名
運行過程:
i.Dos窗口
ii.輸入 java A
iii.java.exe命令會啟動JVM,JVM會啟動類加載器Classloader。
iv.Classloader會在硬盤上搜索A.class文件,找到之后,裝載到JVM
v.JVM將A.class字節碼解釋為二進制文件
vi.操作系統會執行二進制文件與底層的硬件平臺交互。
?
三、JDK,JRE,JVM關系
四、第一個Java程序
public class HelloWorld{public static void main(String[] args){System.ou.printtln("HelloWordl");}}?
適配環境變量,將javac.exe和java.exe在dos環境中可以運行
方法:我的電腦-右鍵-屬性-高級系統設置-環境變量-path-編輯-新建-添加javac.exe和java.exe的地址。
?
目的:dos命令窗口是按照環境變量來查找可運行的程序的,因此必須添加目標程序的路徑。
五、我們編譯這個程序
?
編譯成功之后Dos窗口不報錯,在文件的旁邊生成一個.class文件
注意:
(1)選取相對路徑的快捷鍵:(適用于相對路徑時快速部署)
打開一個目標文件夾,在地址欄直接輸入cmd+回車,則直接Dos命令到這個文件夾下
(2)在Dos窗口下,不在目標程序的目錄,我們可以直接輸入javac,然后拖動這個文件到dos窗口
五、運行程序
注意:必須先切換到.class文件所在的目錄,在使用命令行才能運行,即使我們的環境變量設置好了,也不行。
六、ClassLoder是在哪個位置上搜索HelloWorld.class的字節碼文件的?
(1)默認情況下,ClassLoader從當前路徑下加載xxx.class字節碼文件
(2)配置classpath來指定搜索位置,classpath屬于Java語言中的環境變量,不屬于windows。
(3)方法:classpath=絕對路徑(在windows中配置,名稱要用classpath)
(4)一旦指定了classpath,那么類加載器只會去指定的路徑下加載.class文件,不過這不是問題,我們在windows下配置多個路徑不就行了。
(5)路徑中的“.”代表當前目錄;路徑中的“..”代表上級目錄。
七、源碼:HelloWorld
地址:https://github.com/ruigege66/Java/blob/master/HelloWorld/
2.CSDN:https://blog.csdn.net/weixin_44630050(心悅君兮君不知-睿)
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關注微信公眾號:傅里葉變換,后臺回復”禮包“,獲取大數據學習資料
?
轉載于:https://www.cnblogs.com/ruigege0000/p/11148890.html
總結
以上是生活随笔為你收集整理的Java连载3-编译与运行阶段详解JRE,JDK,JVM关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Fotolog对memcached的应用
- 下一篇: IndentationError: ex