導航:首頁 > 源碼編譯 > jdk編譯運行過程

jdk編譯運行過程

發布時間:2022-08-01 10:19:05

⑴ 編寫和運行java程序的步驟是什麼每一步的結果是什麼在JDK中,Java語言的編譯命令是什麼急需答案啊。

將編寫的java源文件保存為.java後綴的文件(選擇所有文件)
在cmd命令行窗口中將當前目錄切換到java文件保存的目錄下,即cd命令
使用javac +文件名.java編譯java文件
使用java+類文件名(即編譯後產生的.class文件)運行程序

⑵ Java如何編譯執行

ava的一次編譯到處運行是說,編譯好的可執行程序,只要將它放到裝有JVM的機器上就可以運行,你要在你的C,D,F盤的任何目錄下都能javac...,java...哪就要保證這些地方有*.java文件和*.java文件所編譯的*.class文件,你在DOC下只要找到相應的路勁就可以了,當然首先你是按了JVM的

⑶ jdk1.6.0_14如何編譯和運行

初學java,對於環境變數的配置想來卻總覺得不是很清楚,總結一下自己的理解,讓頭腦清楚一些。
下載好的JDK是一個可執行安裝程序,雙擊安裝。將安裝路徑改為:C:\jdk1.6.0(當然其他路徑也可以)。
JDK安裝完成之後我們來設置環境變數:
我的電腦點右鍵,選擇「屬性」,選擇「高級」標簽,進入環境變數設置,分別設置如下三個環境變數:
(1)設置好path變數,使得我們能夠在系統中的任何地方運行java應用程序,比如javac、java、javah等等,這就要找到我們安裝JDK的目錄,比如我們的JDK安裝在C:\jdk1.6.0目錄下,那麼在C:\jdk1.6.0\bin目錄下就是我們常用的java應用程序,我們就需要把C:\jdk1.6.0\bin這個目錄加到path環境變數裡面。
在系統變數里找到path變數,選擇->編輯;(裡面已經有很多的變數值,是在變數值的最前面加上C:\jdk1.6.0\bin;)
變數名: path
變數值: C:\jdk1.6.0\bin;
(2)classpath環境變數,是當我們在開發java程序時需要引用別人寫好的類時,要讓java解釋器知道到哪裡去找這個類。通常,sun為我們提供了一些額外的豐富的類包,一個是dt.jar,一個是tools.jar,這兩個jar包都位於C:\jdk1.6.0\lib目錄下,所以通常我們都會把這兩個jar包加到我們的classpath環境變數中set classpath=.;C:\jdk1.6.0\lib\tools.jar;C:\jdk1.6.0\lib\dt.jar。
在系統環境變數那一欄中點->新建classpath
變數名: classpath
變數值: .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;(注意,CLASSPATH最前面是有個「.」的,表示當前目錄,這樣當我們運行java AClass的時候,系統就會先在當前目錄尋找AClass文件了。);
(3)設置JAVA_HOME:
一是為了方便引用,比如,JDK安裝在C:\jdk1.6.0目錄里,則設置JAVA_HOME為該目錄路徑, 那麼以後要使用這個路徑的時候, 只需輸入%JAVA_HOME%即可, 避免每次引用都輸入很長的路徑串;
二則是歸一原則, 當JDK路徑改變的時候, 僅需更改JAVA_HOME的變數值即可, 否則,就要更改任何用絕對路徑引用JDK目錄的文檔, 要是萬一沒有改全, 某個程序找不到JDK, 後果是可想而知的----系統崩潰!
三則是第三方軟體會引用約定好的JAVA_HOME變數, 不然, 你不能正常使用該軟體.
在系統環境變數那一欄中點->新建JAVA_HOME (JAVA_HOME指向的是JDK的安裝路徑)
變數名: JAVA_HOME
變數值: C:\jdk1.6.0
配置完成下面寫一個簡單的java程式來測試J2SDK是否已安裝成功:

public class HelloWorld{
public static void main(String[] args){
ystem.out.println("Hello world!");
}
}

將程式保存為文檔名為HelloWorld.java的文檔。
打開命令提示符窗口,進入到HelloWorld.java所在目錄,鍵入下面的命令

javac HelloWorld.java
java HelloWorld

此時若列印出來HelloWorld則安裝成功,若沒有列印出這句話,仔細檢查以上配置是否正確。
環境變數配置成功後你就可以著手學習java了。
=====================================================================
給你個仔細的地址你去看看吧!
http://user.qzone.qq.com/373274311?ptlang=2052

⑷ JAVA的源程序是怎樣被編譯和運行的

說得簡單易懂一點,就是JAVA的源程序通過其編譯器編譯成JVM能夠能夠讀懂的源碼,然後由JVM來負責執行,所以簡單說編譯器可以理解成為一個解碼的作用。JVM才是真正的執行工具。JVM可以跨平台,但是運行JAVA無論什麼平台都必須有JVM的支持。

⑸ 簡述Java程序從編寫到運行的基本步驟,並說明Java的基本工作原理

Java編譯原理:
Java 虛擬機(JVM)是可運行Java 代碼的假想計算機。只要根據JVM規格描述將解釋器移植到特定的計算機上,就能保證經過編譯的任何Java代碼能夠在該系統上運行。
一.Java源文件的編譯、下載 、解釋和執行
Java應用程序的開發周期包括編譯、下載 、解釋和執行幾個部分。Java編譯程序將Java源程序翻譯為JVM可執行代碼?位元組碼。這一編譯過程同C/C++ 的編譯有些不同。當C編譯器編譯生成一個對象的代碼時,該代碼是為在某一特定硬體平台運行而產生的。因此,在編譯過程中,編譯程序通過查表將所有對符號的引用轉換為特定的內存偏移量,以保證程序運行。Java編譯器卻不將對變數和方法的引用編譯為數值引用,也不確定程序執行過程中的內存布局,而是將這些符號引用信息保留在位元組碼中,由解釋器在運行過程中創立內存布局,然後再通過查表來確定一個方法所在的地址。這樣就有效的保證了Java的可移植性和安全 性。

運行JVM位元組碼的工作是由解釋器來完成的。解釋執行過程分三部進行:代碼的裝入、代碼的校驗和代碼的執行。裝入代碼的工作由"類裝載器"(class loader)完成。類裝載器負責裝入運行一個程序需要的所有代碼,這也包括程序代碼中的類所繼承的類和被其調用的類。當類裝載器裝入一個類時,該類被放在自己的名字空間中。除了通過符號引用自己名字空間以外的類,類之間沒有其他辦法可以影響其他類。在本台計算機上的所有類都在同一地址空間內,而所有從外部引進的類,都有一個自己獨立的名字空間。這使得本地類通過共享相同的名字空間獲得較高的運行效率,同時又保證它們與從外部引進的類不會相互影響。當裝入了運行程序需要的所有類後,解釋器便可確定整個可執行程序的內存布局。解釋器為符號引用同特定的地址空間建立對應關系及查詢表。通過在這一階段確定代碼的內存布局,Java很好地解決了由超類改變而使子類崩潰的問題,同時也防止了代碼對地址的非法訪問。

隨後,被裝入的代碼由位元組碼校驗器進行檢查。校驗器可發現操作數棧溢出,非法數據類型轉化等多種錯誤。通過校驗後,代碼便開始執行了。

Java位元組碼的執行有兩種方式:
1.即時編譯方式:解釋器先將位元組碼編譯成機器碼,然後再執行該機器碼。
2.解釋執行方式:解釋器通過每次解釋並執行一小段代碼來完成Java位元組碼程 序的所有操作。
通常採用的是第二種方法。由於JVM規格描述具有足夠的靈活性,這使得將位元組碼翻譯為機器代碼的工作

具有較高的效率。對於那些對運行速度要求較高的應用程序,解釋器可將Java位元組碼即時編譯為機器碼,從而很好地保證了Java代碼的可移植性和高性能。

⑹ JDK的編譯和運行程序命令是什麼個針對什麼類型文件

javac:

編譯命令,將java源文件編譯成.class位元組碼文件。

例如:

javacDemo.java

注意這里是源文件

同目錄下會生成Demo.class文件。

java:

運行位元組碼文件,由java虛擬機對位元組碼進行解釋和運行。

例如:

javaDemo

注意這里是文件名

注意事項:

(1) 配置好jdk環境變數,可以運行命令java、javac來測試。

(2) 先javac Demo.java(編譯),後java Demo(運行)

(3) 注意java Demo(文件名,不帶後綴)

(6)jdk編譯運行過程擴展閱讀

Java 面向對象編程三大特性:封裝、繼承、多態

封裝

類:封裝的是對象的屬性和行為

方法:封裝的是一段特定的業務邏輯功能

訪問控制修飾符:封裝的是具體訪問的許可權

繼承

作用:代碼復用

超類:所有派生類所共有的屬性和行為

介面:部分派生類所共有的行為

派生類:派生類所特有的屬性和行為

傳遞性,單一繼承、多介面實現

⑺ Java的詳細運行步驟

Java程序從源文件創建到程序運行要經過兩大步驟:1、源文件由編譯器編譯成位元組碼(ByteCode)
2、位元組碼由java虛擬機解釋運行。因為java程序既要編譯同時也要經過JVM的解釋運行,所以說Java被稱為半解釋語言( "semi-interpreted" language)。
下面通過以下這個java程序,來說明java程序從編譯到最後運行的整個流程。代碼如下:
//MainApp.java
public class MainApp {
public static void main(String[] args) {
Animal animal = new Animal("Puppy");
animal.printName();
}
}
//Animal.java
public class Animal {
public String name;
public Animal(String name) {
this.name = name;
}
public void printName() {
System.out.println("Animal ["+name+"]");
}
}
第一步(編譯): 創建完源文件之後,程序會先被編譯為.class文件。Java編譯一個類時,如果這個類所依賴的類還沒有被編譯,編譯器就會先編譯這個被依賴的類,然後引用,否則直接引用,這個有點象make。如果java編譯器在指定目錄下找不到該類所其依賴的類的.class文件或者.java源文件的話,編譯器話報「cant find symbol」的錯誤。

編譯後的位元組碼文件格式主要分為兩部分:常量池和方法位元組碼。常量池記錄的是代碼出現過的所有token(類名,成員變數名等等)以及符號引用(方法引用,成員變數引用等等);方法位元組碼放的是類中各個方法的位元組碼。下面是MainApp.class通過反匯編的結果,我們可以清楚看到.class文件的結構:
第二步(運行):java類運行的過程大概可分為兩個過程:1、類的載入 2、類的執行。需要說明的是:JVM主要在程序第一次主動使用類的時候,才會去載入該類。也就是說,JVM並不是在一開始就把一個程序就所有的類都載入到內存中,而是到不得不用的時候才把它載入進來,而且只載入一次。
下面是程序運行的詳細步驟:
在編譯好java程序得到MainApp.class文件後,在命令行上敲java AppMain。系統就會啟動一個jvm進程,jvm進程從classpath路徑中找到一個名為AppMain.class的二進制文件,將MainApp的類信息載入到運行時數據區的方法區內,這個過程叫做MainApp類的載入。
然後JVM找到AppMain的主函數入口,開始執行main函數。
main函數的第一條命令是Animal animal = new Animal("Puppy");就是讓JVM創建一個Animal對象,但是這時候方法區中沒有Animal類的信息,所以JVM馬上載入Animal類,把Animal類的類型信息放到方法區中。
載入完Animal類之後,Java虛擬機做的第一件事情就是在堆區中為一個新的Animal實例分配內存, 然後調用構造函數初始化Animal實例,這個Animal實例持有著指向方法區的Animal類的類型信息(其中包含有方法表,java動態綁定的底層實現)的引用。
當使用animal.printName()的時候,JVM根據animal引用找到Animal對象,然後根據Animal對象持有的引用定位到方法區中Animal類的類型信息的方法表,獲得printName()函數的位元組碼的地址。
開始運行printName()函數。
特別說明:java類中所有public和protected的實例方法都採用動態綁定機制,所有私有方法、靜態方法、構造器及初始化方法<clinit>都是採用靜態綁定機制。而使用動態綁定機制的時候會用到方法表,靜態綁定時並不會用到。

⑻ java語言編譯和解釋執行的具體過程是怎樣的

Java中引入了虛擬機的概念,即在機器和編譯程序之間加入了一層抽象的虛擬的機器。這台虛擬的機器在任何平台上都提供給編譯程序一個的共同的介面。編譯程序只需要面向虛擬機,生成虛擬機能夠理解的代碼,然後由解釋器來將虛擬機代碼轉換為特定系統的機器碼執行。在Java中,這種供虛擬機理解的代碼叫做位元組碼(ByteCode),它不面向任何特定的處理器,只面向虛擬機。每一種平台的解釋器是不同的,但是實現的虛擬機是相同的。Java源程序經過編譯器編譯後變成位元組碼,位元組碼由虛擬機解釋執行,虛擬機將每一條要執行的位元組碼送給解釋器,解釋器將其翻譯成特定機器上的機器碼,然後在特定的機器上運行。

⑼ 簡述JDK下java程序的開發運行過程

安裝JDK(構建JVM)--》編寫java代碼--》編譯(編譯成.class文件)--》運行(在jvm下解釋class文件)

⑽ 簡述java語言的執行過程

1、java編譯生成的位元組碼,在所有操作系統都是一樣,故其有這樣的特點:
write once, run anywhere.其意思:只需要一次編碼,就可以在任何環境下運行。
2、不同的操作系統,其java 虛擬機是不一樣的。虛擬機將java位元組代碼轉換對應操作系統的
相關指令,保證其正常運行。
3、java 系統支持所有的硬體的平台,不存在你提及的問題,你可以放心使用。
4、解釋器在java虛擬機中,編譯器在JDK或JRE 中。
5、java虛擬機就是常說的java 運行環境,其縮寫是 JRE,安裝在操作系統下的一個目錄中,
這個目錄在安裝時可以由你自行指定,就像你安裝其它應用軟體一樣。JDK中包含了JRE,
還有開發環境,如編譯器,幫助文檔生成器,以及系統API的jar庫文件等。

閱讀全文

與jdk編譯運行過程相關的資料

熱點內容
u盤加密了手機讀取不了 瀏覽:947
oracle11g啟動命令 瀏覽:931
怎麼把視頻傳到自己的文件夾 瀏覽:700
福州電動車在哪個app上搖號 瀏覽:818
禮書PDF 瀏覽:667
什麼app看本子 瀏覽:394
如何學好編譯語言 瀏覽:591
平面編程和切削 瀏覽:704
phpemoji表情符號 瀏覽:778
IBM雲平台shor演算法 瀏覽:577
程序員當乙方 瀏覽:519
php商城設計與實現的 瀏覽:305
php自動列印 瀏覽:469
哪個app多年輕人 瀏覽:902
租的伺服器如何重裝 瀏覽:937
乾眼症程序員 瀏覽:239
樂動達人安卓版有什麼游戲 瀏覽:484
c523壓縮比 瀏覽:544
命令語氣的人什麼心態 瀏覽:435
程序員喜歡留指甲嗎 瀏覽:516