java程序編譯
Java代碼的編譯與反編譯
2017-02-21 Hollis 數盟
一、什麼是編譯
1、利用編譯程序從源語言編寫的源程序產生目標程序的過程。
2、用編譯程序產生目標程序的動作。 編譯就是把高級語言變成計算機可以識別的2進制語言,計算機只認識1和0,編譯程序把人們熟悉的語言換成2進制的。 編譯程序把一個源程序翻譯成目標程序的工作過程分為五個階段:詞法分析;語法分析;語義檢查和中間代碼生成;代碼優化;目標代碼生成。主要是進行詞法分析和語法分析,又稱為源程序分析,分析過程中發現有語法錯誤,給出提示信息。
二、什麼是反編譯
計算機軟體反向工程(Reverse engineering)也稱為計算機軟體還原工程,是指通過對他人軟體的目標程序(可執行程序)進行「逆向分析、研究」工作,以推導出他人的軟體產品所使用的思路、原理、結構、演算法、處理過程、運行方法等設計要素,某些特定情況下可能推導出源代碼。反編譯作為自己開發軟體時的參考,或者直接用於自己的軟體產品中。
三、 Java類的編譯與反編譯
我們在最初學習Java的時候,會接觸到兩個命令:javac和java,那個時候我們就知道,javac是用來編譯Java類的,就是將我們寫好的helloworld.java文件編譯成helloworld.class文件。
class文件打破了C或者C++等語言所遵循的傳統,使用這些傳統語言寫的程序通常首先被編譯,然後被連接成單獨的、專門支持特定硬體平台和操作系統的二進制文件。通常情況下,一個平台上的二進制可執行文件不能在其他平台上工作。而Java class文件是可以運行在任何支持Java虛擬機的硬體平台和操作系統上的二進制文件。
那麼反編譯呢,就是通過helloworld.class文件得到java文件(或者說是程序員能看懂的Java文件)
四、什麼時候會用到反編譯
1、我們只有一個類的class文件,但是我們又看不懂Java的class文件,那麼我們可以把它反編譯成我們可以看得懂的文件。
2、學習Java過程中,JDK的每個版本都會加入越來越多的語法糖,有些時候我們想知道Java一些實現細節,我們可以藉助反編譯。
五、反編譯工具
1、javap
2、Jad:官網(牆裂推薦)
客戶端:
可以在官網下載可執行文件,找到對應的操作系統的對應版本,然後進行安裝使用。
因為我使用的是linux操作系統,所以我下載的是Linux版本的工具,這個工具下載好之後會有一個執行文件,只要在執行文件所在目錄執行./jad helloworld.class就會在當前目錄下生成helloworld.jad文件,該文件里就是我們很熟悉的Java代碼
Eclipse插件:
下載地址 在官網下載插件的jar包,然後將jar包放到eclipse的plugins目錄下『 在打開Eclipse,Eclipse->Window->Preferences->Java,此時你會發現會比原來多了一個JadClipse的選項,單擊,在Path to decompiler中輸入你剛才放置jad.exe的位置,也可以制定臨時文件的目錄。當然在JadClipse下還有一些子選項,如Debug,Directives等,按照默認配置即可。 基本配置完畢後,我們可以查看一下class文件的默認打開方式,Eclipse->Window->Preferences->General->Editors->File Associations我們可以看到class文件的打開方式有兩個,JadClipse和Eclipse自帶的Class File Viewer,而JadClipse是默認的。 全部配置完成,下面我們可以查看源碼了,選擇需要查看的類,按F3即可查看源碼
Ⅱ 編譯java程序需要使用什麼命令
編譯java源文件使用命令:javac
xxx.java
編譯生成.class文件
接著使用java
xxx
運行
Ⅲ 簡述JAVA程序的編輯編譯和運行過程
第一步(編譯): 創建完源文件之後,程序會先被編譯為.class文件。Java編譯一個類時,如果這個類所依賴的類還沒有被編譯,編譯器就會先編譯這個被依賴的類,然後引用,否則直接引用,這個有點象make。
如果java編譯器在指定目錄下找不到該類所其依賴的類的.class文件或者.java源文件的話,編譯器話報「cant find symbol」的錯誤。
第二步(運行):java類運行的過程大概可分為兩個過程:1、類的載入 2、類的執行。需要說明的是:JVM主要在程序第一次主動使用類的時候,才會去載入該類。也就是說,JVM並不是在一開始就把一個程序就所有的類都載入到內存中,而是到不得不用的時候才把它載入進來,而且只載入一次。
特別說明:java類中所有public和protected的實例方法都採用動態綁定機制,所有私有方法、靜態方法、構造器及初始化方法<clinit>都是採用靜態綁定機制。而使用動態綁定機制的時候會用到方法表,靜態綁定時並不會用到。
(3)java程序編譯擴展閱讀:
Java整個編譯以及運行的過程相當繁瑣,本文通過一個簡單的程序來簡單的說明整個流程。
Java代碼編譯:是由Java源碼編譯器來完成;
Java位元組碼的執行:是由JVM執行引擎來完成
Java程序從源文件創建到程序運行要經過兩大步驟:
1、源文件由編譯器編譯成位元組碼(ByteCode)
2、位元組碼由java虛擬機解釋運行。因為java程序既要編譯同時也要經過JVM的解釋運行,所以說Java被稱為半解釋語言( "semi-interpreted" language)。
Ⅳ Java用什麼編譯器
常用的就是Eclipse,My Eclipse,idea這三種,My Eclipse相對於其他兩種不是很常用
Ⅳ 要編譯運行java程序需要安裝什麼
如果你需要運行java程序,只需安裝JRE就可以了。如果你需要編寫java程序,需要安裝JDK。
先裝JDK,把環境搭好再來個IDE基本上就可以開始寫java代碼了,Jdk ide開發工具 eclipse Idea
要是做web的話把tomcat,mysql裝一下就可以開始做簡單web了
JRE: Java Runtime Environment
JDK:Java Development Kit
JRE顧名思義是java運行時環境,包含了java虛擬機,java基礎類庫。是使用java語言編寫的程序運行所需要的軟體環境,是提供給想運行java程序的用戶使用的。
JDK顧名思義是java開發工具包,是程序員使用java語言編寫java程序所需的開發工具包,是提供給程序員使用的。
JDK包含了JRE,同時還包含了編譯java源碼的編譯器javac,還包含了很多java程序調試和分析的工具:jconsole,jvisualvm等工具軟體,還包含了java程序編寫所需的文檔和demo例子程序。
Ⅵ 編譯java程序需要使用什麼命令
編譯命令是 javac
首先使用記事本編輯一段簡單的Java代碼
Ⅶ 怎麼編譯java程序
你要安裝好jdk,設置好相應的環境變數,然後在命令行裡面javac.
下面給出一個例子,你可以參考一下:
目前,建議初學者用j2sdk + Tomcat 5.0.19開始學習jsp.也是現在最新版本.
初學者一般和我當初一樣,都不明白jdk,j2sdk,j2se,j2ee之間的區別,這里簡單介紹一下:
jdk: java devolop kit -- java開發包(運行java最基本的東東)
j2sdk:在1.4版以前稱為jdk,可以理解j2sdk是jdk的升級版本,所以我們只要安了j2sdk即可,JDK就沒必要了,呵呵,裝了升級版,還要裝低級版否?
j2sdk呢有幾個版本對應於java2的幾個版本,其中j2ee需要用到開發工具就是J2eesdk了,只不過大部分應用伺服器(weblogic jboss等)都內置了j2eesdk。
j2se: j2sdk也就是標准版,一般來說j2sdk指的就是j2se.
j2ee: 也稱j2eesdk,用來進行企業級開發。
jre: 是java runtime envionment -- java運行環境,jdk中包括了它,但是對於不需要開發只是運行的用戶是可以只單獨安裝jre的,所以sun提供了jre的下載。
能夠理解上面的就概念就差不多啦,應該不是很難吧,如果現在還不能完全明白,不要緊,在跟我學過後面的幾章後,你來回過頭來看看,就很清楚了。
j2sdk下載地址:http://java.sun.com/j2se/1.4.2/download.html
tomcat5 下載地址:http://www.apache.org/dist/jakarta/
安裝步驟:
1.安裝完j2sdk以後,在我的電腦->屬性->高級->環境變數->系統變數中添加以下環境變數(假定你的j2sdk安裝在c:\j2sdk1.4.2):
JAVA_HOME=c:\j2sdk1.4.2;
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;不能少,表示當前路徑)
path= %JAVA_HOME%\bin; (系統里已經有了path變數,只需要在path最前面加上去即可)
然後可以寫一個簡單的java程序來測試J2SDK是否已安裝成功:
public class Myjava{
public static void main(String args[]){
System.out.println("試試看,裝好了嗎?.");
}
}
將上面的這段程序保存為文件名為Myjava.java的文件。
然後打開命令提示符窗口,cd到你的Myjava.java所在目錄,然後鍵入下面的命令
javac Myjava.java
java Myjava
此時如果看到結果的話表示安裝成功,出錯則仔細檢查一下你的配置情況。
2.安裝Tomcat後,在我的電腦->屬性->高級->環境變數->系統變數中添加以下環境變數(假定你的tomcat安裝在c:\tomcat5):
CATALINA_HOME=c:\tomcat5;
CATALINA_BASE=c:\tomcat5;
然後修改環境變數中的classpath,把tomat安裝目錄下的common\lib下的servlet-api.jar(此文件在tomcat5以前名為:servlet.jar)追加到classpath中去,修改後的classpath如下:
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet-api.jar; (最好再拷貝到:C:\j2sdk1.4.2\jre\lib\ext目錄下)
接著可以啟動tomcat,在IE中訪問http://localhost:8080,如果看到tomcat的歡迎頁面的話說明安裝成功了。
第三步:建立自己的jsp app目錄
1.到Tomcat的安裝目錄的webapps目錄,可以看到ROOT,examples等Tomcat自帶的的目錄;
2.在webapps目錄下新建一個目錄,起名叫myapp;
3.myapp下新建一個目錄WEB-INF,注意,目錄名稱是區分大小寫的;
4.WEB-INF下新建一個文件web.xml,內容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>My Web Application</display-name>
<description>
A application for test.
</description>
</web-app>
5.在myapp下新建一個測試的jsp頁面,文件名為index.jsp,文件內容如下:
<html>
<head><title>大家好</title>
</head>
<body>
<% out.println(" 大家好,我的第一個jsp程序"); %>
</body>
</html>
6.重啟Tomcat
7.打開瀏覽器,輸入http://localhost:8080/myapp/index.jsp 即可.Ⅷ 如何編譯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。
(8)java程序編譯擴展閱讀
Java也是一種高級語言,要讓計算機執行你撰寫的Java程序,也得通過編譯程序的編譯。但是Java編譯程序並不直接將Java源代碼編譯為相依於計算機平台的0、1序列,而是將其編譯為位元組碼。
Java源代碼的擴展名為.java,經過編譯程序編譯之後生成擴展名為.class的位元組碼。
Ⅸ 如何編譯java
用命令提示符編譯java程序的步驟:
1.先新建文本文檔,輸入自己的java程序。
這里我寫一個簡單的java程序,來做示範。
import java.util.*;
public class HelloDate{
public static void main(String[] args)
{
System.out.println("Hello,it's:");
System.out.println(new Date());
}
}
經驗總結:運行一個java程序的大概的流程是:
書寫源代碼------>編譯------->運行---->結束。
注意事項:
1.在輸入的時候一定要注意區分大小寫。
2.操作之前要保證自己的電腦配置了java的運行環境。