當前位置:首頁 » 編程語言 » java源碼編譯

java源碼編譯

發布時間: 2024-11-07 17:34:59

① 將java編譯成位元組碼的命令程序是

Java編譯器將Java源代茄兄碼編顫鍵襲譯成Java位元組碼文件,其命令行程序為javac。在命令行中使用javac命令,後跟待編譯的Java源代碼文件名,即可將其編譯成位元組碼亮掘文件。例如,javac HelloWorld.java命令會將名為HelloWorld.java的源代碼文件編譯成名為HelloWorld.class的位元組碼文件。


② java編譯器是什麼

Java編譯器是一種將Java源代碼編譯為Java位元組碼的程序。Java源代碼是以.java文件的形式存儲的,而Java位元組碼是一種由Java虛擬機(JVM)可識別的二進制格式。編譯器將源代碼文件轉換為位元組碼文件,然後可以在Java虛擬機上運行這些位元組碼文件。



Java編譯器通常是Java開發工具包(JDK)的一部分,您可以通過安裝JDK來獲得Java編譯器。JDK還包括Java虛擬機(JVM)和其他Java開發工具,例如調試器、文檔生成器等等。在命令行下,您可以使用javac命令來調用Java編譯器,將源代碼文件編譯為位元組碼文件。以下是一些常用的Java編譯器軟體。


1、Oracle JDK:Oracle Java Development Kit是一款由Oracle提供的Java開發工具包,包括Java編譯器(javac)和其他開發工具。


2、OpenJDK:OpenJDK是一個免費的Java開發工具包,是Oracle JDK的開源替代品。它包含Java編譯器和其他開發工具。


3、Eclipse:Eclipse是一個流行的Java集成開發環境(IDE),包括Java編譯器和其他開發工具。它還支持其他編程語言的開發。


4、NetBeans:NetBeans是另一個流行的Java IDE,包括Java編譯器和其他開發工具。它也支持其他編程語言的開發。


5、IntelliJ IDEA:IntelliJ IDEA是一款流行的Java IDE,包括Java編譯器和其他開發工具。它還支持其他編程語言的開發。


6、JCreator:JCreator是一款Java IDE,包括Java編譯器和其他開發工具。它也有一個免費版本和一個付費版本。


7、BlueJ:BlueJ是一款專為初學者設計的Java IDE,包括Java編譯器和其他開發工具。


除了這些,還有許多其他的Java編譯器和集成開發環境可供選擇,你可以根據自己的需求和喜好選擇適合自己的工具。

③ java語言的編譯過程與一般編程語言的編譯過程有何不同

  1. Java代碼編譯和執行的整個過程包含了以下三個重要的機制:

Java源碼編譯機制

類載入機制

類執行機制

  • Java源碼編譯機制

Java源碼編譯由以下三個過程組成:

分析和輸入到符號表

註解處理

語義分析和生成class文件


  • JVM的類載入是通過ClassLoader及其子類來完成的

  • JVM是基於棧的體系結構來執行class位元組碼的。線程創建後,都會產生程序計數器(PC)和棧(Stack),程序計數器存放下一條要執行的指令在方
    法內的偏移量,棧中存放一個個棧幀,每個棧幀對應著每個方法的每次調用,而棧幀又是有局部變數區和操作數棧兩部分組成,局部變數區用於存放方法中的局部變
    量和參數,操作數棧中用於存放方法執行過程中產生的中間結果

④ 什麼是Java代碼的編譯與反編譯

Java代碼的編譯與反編譯

2017-02-21Hollis數盟

一、什麼是編譯

1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。

2、用編譯程序產生目標程序的動作。編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。

二、什麼是反編譯

計算機軟體反向工程(Reverseengineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。

三、Java類的編譯與反編譯

我們在最初學習Java的時候,會接觸到兩個命令:javac和java,那個時候我們就知道,javac是用來編譯Java類的,就是將我們寫好的helloworld.java文件編譯成helloworld.class文件。

class文件打破了C或者C++等語言所遵循的傳統,使用這些傳統語言寫的程序通常首先被編譯,然後被連接成單獨的、專門支持特定硬體平台和操作系統的二進制文件。通常情況下,一個平台上的二進制可執行文件不能在其他平台上工作。而Javaclass文件是可以運行在任何支持Java虛擬機的硬體平台和操作系統上的二進制文件。

那麼反編譯呢,就是通過helloworld.class文件得到java文件(或者說是程序員能看懂的Java文件)

四、什麼時候會用到反編譯

1、我們只有一個類的class文件,但是我們又看不懂Java的class文件,那麼我們可以把它反編譯成我們可以看得懂的文件。

2、學習Java過程中,JDK的每個版本都會加入越來越多的語法糖,有些時候我們想知道Java一些實現細節,我們可以藉助反編譯。

五、反編譯工具

1、javap

2、Jad:官網(牆裂推薦)

客戶端:

可以在官網下載可執行文件,找到對應的操作系統的對應版本,然後進行安裝使用。

因為我使用的是linux操作系統,所以我下載的是Linux版本的工具,這個工具下載好之後會有一個執行文件,只要在執行文件所在目錄執行./jadhelloworld.class就會在當前目錄下生成helloworld.jad文件,該文件里就是我們很熟悉的Java代碼

Eclipse插件:

下載地址在官網下載插件的jar包,然後將jar包放到eclipse的plugins目錄下『在打開Eclipse,Eclipse->Window->Preferences->Java,此時你會發現會比原來多了一個JadClipse的選項,單擊,在Pathtodecompiler中輸入你剛才放置jad.exe的位置,也可以制定臨時文件的目錄。當然在JadClipse下還有一些子選項,如Debug,Directives等,按照默認配置即可。基本配置完畢後,我們可以查看一下class文件的默認打開方式,Eclipse->Window->Preferences->General->Editors->FileAssociations我們可以看到class文件的打開方式有兩個,JadClipse和Eclipse自帶的ClassFileViewer,而JadClipse是默認的。全部配置完成,下面我們可以查看源碼了,選擇需要查看的類,按F3即可查看源碼

⑤ intellij idea怎麼寫java程序

如圖所示:

1.

5、最後生成的class文件由以下部分組成:

  • 結構信息:包括class文件格式版本號及各部分的數量與大小的信息 。

  • 元數據:對應於Java源碼中聲明與常量的信息。包含類/繼承的超類/實現的介面的聲明信息、域與方法聲明信息和常量池 。

  • 方法信息:對應Java源碼中語句和表達式對應的信息。包含位元組碼、異常處理器表、求值

  • 與局部變數區大小、求值棧的類型記錄、調試符號信息。

⑥ 如何編譯java程序

三種方法:

1.在IDE中,如eclipse中寫的Java程序,在點擊保存後eclipse就會調用javac編譯程序編譯,編譯文件在當前項目的bin目錄下。

2.作為一個獨立的文件且沒有定義Java環境變數,需要在cmd窗口中切換到java bin目錄下執行Javac程序,執行格式為javac 空格 Java源文件;如 javac C://hello.java;

3.作為一個獨立的文件且定義了Java環境變數,打開cmd窗口,可以在任意目錄輸入javac java源文件,如javac D://hi.java。

(6)java源碼編譯擴展閱讀

Java也是一種高級語言,要讓計算機執行你撰寫的Java程序,也得通過編譯程序的編譯。但是Java編譯程序並不直接將Java源代碼編譯為相依於計算機平台的0、1序列,而是將其編譯為位元組碼。

Java源代碼的擴展名為.java,經過編譯程序編譯之後生成擴展名為.class的位元組碼。

熱點內容
phpqq驗證 發布:2024-11-07 21:09:07 瀏覽:961
安卓忘記屏幕時間怎麼辦 發布:2024-11-07 20:46:08 瀏覽:180
酒店伺服器異常怎麼辦 發布:2024-11-07 20:46:03 瀏覽:805
電視買什麼牌的什麼配置好 發布:2024-11-07 20:41:55 瀏覽:652
光遇安卓用什麼拍視頻比較好 發布:2024-11-07 20:23:02 瀏覽:991
華為雲伺服器搭建網站 發布:2024-11-07 20:22:39 瀏覽:251
手機刷安卓卡需要注意什麼 發布:2024-11-07 20:21:09 瀏覽:23
塊存儲客戶端 發布:2024-11-07 20:12:14 瀏覽:972
scratch打地鼠編程 發布:2024-11-07 20:06:41 瀏覽:211
微信存儲空間里聊天記錄刪除 發布:2024-11-07 20:05:31 瀏覽:166