在DOS 窗口下。進(jìn)入你寫的程序目錄。例如你把寫的程序保存到D:\\a.java\x0d\x0a\x0d\x0a這個(gè)時(shí)候在DOS下進(jìn)入D:\\\x0d\x0a\x0d\x0a然后調(diào)用JDK的編譯器javac程序\x0d\x0a\x0d\x0aD:\\javac a.java\x0d\x0a\x0d\x0a如果成功,在同一目錄下會(huì)產(chǎn)生一個(gè)擴(kuò)展名為.class的字節(jié)碼,然后調(diào)用JDK的java程序是用來(lái)啟動(dòng)虛擬機(jī)\x0d\x0a\x0d\x0aD:\\java a\x0d\x0a\x0d\x0a如果,沒(méi)有編寫上的錯(cuò)誤,就可以看到運(yùn)行結(jié)果了。
創(chuàng)新互聯(lián)專注于企業(yè)成都全網(wǎng)營(yíng)銷、網(wǎng)站重做改版、西和網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁(yè)面制作、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為西和等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
通常開(kāi)發(fā)一個(gè)java應(yīng)用程序可分為三個(gè)步驟:
1.創(chuàng)建一個(gè)帶有文件擴(kuò)展名 *.java 的源文件
1).使用編輯器(如記事本,小編使用的是notepad++),輸入以下6行文本:
1 //一個(gè)簡(jiǎn)單的application例子:打印一行文本
2 class Hello {
3 public static void main (String args[]){
4 System.out.println("Hello Java,This is my first Java Application!");
5 ?? ?}
6 }
輸入完成,如下圖所示
2).把文件名命名為Hello.java ,并保存,
2.使用java編輯器javac.exe編譯源文件生成一個(gè)帶有文件擴(kuò)展 *.class 的字節(jié)碼文件
1).win+R,在文本框輸入cmd,回車,進(jìn)入DOS窗口。
2).使用cd命令將路徑轉(zhuǎn)入源文件“Hello.java”所在路徑(cd用法可參照DOC窗口之cd命令),輸入“javac Hello.java”命令,回車。
同時(shí),我們?cè)谠次募癏ello.java”所在文件夾可以發(fā)現(xiàn)多了一個(gè)字節(jié)碼文件(編輯器javac.exe編譯的結(jié)果),這就對(duì)了。
3.使用java解釋器 java.exe?運(yùn)行字節(jié)碼
在當(dāng)前路徑下,輸入 “java Hello” 命令,回車。運(yùn)行結(jié)果如下
爪哇之路開(kāi)啟成功。
Java代碼的編譯與反編譯
2017-02-21Hollis數(shù)盟
一、什么是編譯
1、利用編譯程序從源語(yǔ)言編寫的源程序產(chǎn)生目標(biāo)程序的過(guò)程。
2、用編譯程序產(chǎn)生目標(biāo)程序的動(dòng)作。編譯就是把高級(jí)語(yǔ)言變成計(jì)算機(jī)可以識(shí)別的2進(jìn)制語(yǔ)言,計(jì)算機(jī)只認(rèn)識(shí)1和0,編譯程序把人們熟悉的語(yǔ)言換成2進(jìn)制的。編譯程序把一個(gè)源程序翻譯成目標(biāo)程序的工作過(guò)程分為五個(gè)階段:詞法分析;語(yǔ)法分析;語(yǔ)義檢查和中間代碼生成;代碼優(yōu)化;目標(biāo)代碼生成。主要是進(jìn)行詞法分析和語(yǔ)法分析,又稱為源程序分析,分析過(guò)程中發(fā)現(xiàn)有語(yǔ)法錯(cuò)誤,給出提示信息。
二、什么是反編譯
計(jì)算機(jī)軟件反向工程(Reverseengineering)也稱為計(jì)算機(jī)軟件還原工程,是指通過(guò)對(duì)他人軟件的目標(biāo)程序(可執(zhí)行程序)進(jìn)行“逆向分析、研究”工作,以推導(dǎo)出他人的軟件產(chǎn)品所使用的思路、原理、結(jié)構(gòu)、算法、處理過(guò)程、運(yùn)行方法等設(shè)計(jì)要素,某些特定情況下可能推導(dǎo)出源代碼。反編譯作為自己開(kāi)發(fā)軟件時(shí)的參考,或者直接用于自己的軟件產(chǎn)品中。
三、Java類的編譯與反編譯
我們?cè)谧畛鯇W(xué)習(xí)Java的時(shí)候,會(huì)接觸到兩個(gè)命令:javac和java,那個(gè)時(shí)候我們就知道,javac是用來(lái)編譯Java類的,就是將我們寫好的helloworld.java文件編譯成helloworld.class文件。
class文件打破了C或者C++等語(yǔ)言所遵循的傳統(tǒng),使用這些傳統(tǒng)語(yǔ)言寫的程序通常首先被編譯,然后被連接成單獨(dú)的、專門支持特定硬件平臺(tái)和操作系統(tǒng)的二進(jìn)制文件。通常情況下,一個(gè)平臺(tái)上的二進(jìn)制可執(zhí)行文件不能在其他平臺(tái)上工作。而Javaclass文件是可以運(yùn)行在任何支持Java虛擬機(jī)的硬件平臺(tái)和操作系統(tǒng)上的二進(jìn)制文件。
那么反編譯呢,就是通過(guò)helloworld.class文件得到j(luò)ava文件(或者說(shuō)是程序員能看懂的Java文件)
四、什么時(shí)候會(huì)用到反編譯
1、我們只有一個(gè)類的class文件,但是我們又看不懂Java的class文件,那么我們可以把它反編譯成我們可以看得懂的文件。
2、學(xué)習(xí)Java過(guò)程中,JDK的每個(gè)版本都會(huì)加入越來(lái)越多的語(yǔ)法糖,有些時(shí)候我們想知道Java一些實(shí)現(xiàn)細(xì)節(jié),我們可以借助反編譯。
五、反編譯工具
1、javap
2、Jad:官網(wǎng)(墻裂推薦)
客戶端:
可以在官網(wǎng)下載可執(zhí)行文件,找到對(duì)應(yīng)的操作系統(tǒng)的對(duì)應(yīng)版本,然后進(jìn)行安裝使用。
因?yàn)槲沂褂玫氖莑inux操作系統(tǒng),所以我下載的是Linux版本的工具,這個(gè)工具下載好之后會(huì)有一個(gè)執(zhí)行文件,只要在執(zhí)行文件所在目錄執(zhí)行./jadhelloworld.class就會(huì)在當(dāng)前目錄下生成helloworld.jad文件,該文件里就是我們很熟悉的Java代碼
Eclipse插件:
下載地址在官網(wǎng)下載插件的jar包,然后將jar包放到eclipse的plugins目錄下‘在打開(kāi)Eclipse,Eclipse-Window-Preferences-Java,此時(shí)你會(huì)發(fā)現(xiàn)會(huì)比原來(lái)多了一個(gè)JadClipse的選項(xiàng),單擊,在Pathtodecompiler中輸入你剛才放置jad.exe的位置,也可以制定臨時(shí)文件的目錄。當(dāng)然在JadClipse下還有一些子選項(xiàng),如Debug,Directives等,按照默認(rèn)配置即可?;九渲猛戤吅螅覀兛梢圆榭匆幌耤lass文件的默認(rèn)打開(kāi)方式,Eclipse-Window-Preferences-General-Editors-FileAssociations我們可以看到class文件的打開(kāi)方式有兩個(gè),JadClipse和Eclipse自帶的ClassFileViewer,而JadClipse是默認(rèn)的。全部配置完成,下面我們可以查看源碼了,選擇需要查看的類,按F3即可查看源碼
小弟不才,籠統(tǒng)點(diǎn)說(shuō),編譯是把我們寫的java語(yǔ)言編譯成一種過(guò)渡語(yǔ)言給機(jī)器識(shí)別(電腦是不會(huì)直接看懂你寫的java語(yǔ)言的,中間需要一個(gè)轉(zhuǎn)換過(guò)程,可以理解成是編譯的作用),例如會(huì)生成*.class等這些文件,而運(yùn)行就是執(zhí)行編譯后的那些文件。。應(yīng)該大概就是這樣
這里給你一個(gè)具體的場(chǎng)景來(lái)講述如何使用命令行編譯和運(yùn)行Java代碼:
任務(wù)
我們有一個(gè)相當(dāng)標(biāo)準(zhǔn)的Java工程,它包含三個(gè)頂層文件夾:
/bin-用來(lái)存放已編譯好的.class文件
/lib-用來(lái)存放第三方.jar文件
/src-存放.java源代碼
我的任務(wù)就是要從Java工程根目錄去編譯和運(yùn)行工程。我們將使用Windows操作系統(tǒng)作為例子(和在Unix系統(tǒng)上的唯一區(qū)別就是路徑分隔符是”:“而不是”;“)。
編譯Java代碼
第一步是把文本文件.java源代碼編譯成Java虛擬機(jī)字節(jié)碼文件(.class)。這一步使用一個(gè)叫javac的JDK工具來(lái)完成。
假設(shè)我們?cè)趹?yīng)用的根目錄下,從com.example包下嘗試把Application.java文件,以及把lib文件夾中的lib1.jar和lib2.jar庫(kù)編譯到目標(biāo)文件夾bin下,編譯命令應(yīng)該是如下格式:
javac -d bin -sourcepath src -cp lib/lib1.jar;lib/lib2.jar src/com/example/Application.java1
編譯完后,/bin/com/example/Application.class應(yīng)該就會(huì)創(chuàng)建出來(lái)了。如何Application.java使用了其他工程的類,那么他們?nèi)繒?huì)自動(dòng)被編譯并且放到相應(yīng)的文件夾下。
運(yùn)行Java代碼
為了啟動(dòng)我們剛剛編譯的.class文件,需要另外一個(gè)叫java的JDK工具。
假設(shè)我們?cè)趹?yīng)用的根目錄下,為了能夠啟動(dòng)com.example包中的,使用了lib文件夾下的lib1.jar和lib2.jar庫(kù)的Application.class文件,啟動(dòng)命令應(yīng)該是如下
java -cp bin;lib/lib1.jar;lib/lib2.jar com.example.Application
我們?cè)谶@里沒(méi)有提供文件名,只有一個(gè)實(shí)際的類名,java會(huì)基于提供的classpath(縮寫成cp)路徑去搜索。
當(dāng)前題目:java代碼的編譯與運(yùn)行 運(yùn)行java的編譯器
文章起源:http://jinyejixie.com/article44/dosdghe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、定制開(kāi)發(fā)、搜索引擎優(yōu)化、網(wǎng)站設(shè)計(jì)、微信公眾號(hào)、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)