導航:首頁 > 源碼編譯 > 命令編譯java代碼

命令編譯java代碼

發布時間:2023-08-18 18:53:56

『壹』 什麼是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即可查看源碼

『貳』 編譯Java程序的命令是:

javac {Java的類名}

如果Java類不在當前目錄下的話,類名前面還需要有類所在的路徑。

『叄』 如何使用vi編寫一個Java的HelloWorld程序並編譯執行

輸入賣弊vi HelloWorld.javax0dx0a進入念配雀HelloWorld.java編輯,寫上helloword的代碼x0dx0apublic class Heoolworld{x0dx0a public static void main(String[] args){x0dx0a System.out.print("Hello World!"); x0dx0a }x0dx0ax0dx0a}x0dx0ax0dx0a按住鍵盤上的esc鍵,然後輸入:wq保存並仔早退出x0dx0ax0dx0a輸入命令javac HelloWorld.java 編譯Java類x0dx0a輸入java HelloWorld執行Java類

『肆』 編譯java程序的命令是什麼,運行java應用程序的命令是什麼

當前默認目錄為C盤Users文件夾下的Administrator文件夾。一般而言,我們習慣改變當前目錄。由於windows有磁碟分區,若要跳到其他磁碟,例如E盤,有幾種方法:

1、輸入命令: pushd 路徑(此命令可將當前目錄設為所希望的任一個已存在的路徑)

2、輸入命令: e: 轉移到e盤,然後再輸入 cd 轉移到所希望的已知路徑。

希望在windows命令行下使用javac、java、javap等命令,那麼當前電腦必須安裝了jdk,並且將jdk的bin目錄添加到環境變數path下了。

拓展資料:

Java是一種編程語言,被特意設計用於互聯網的分布式環境。Java具有類似於C++語言的「形式和感覺」,但它要比C++語言更易於使用,而且在編程時徹底採用了一種「以對象為導向」的方式。

使用Java編寫的應用程序,既可以在一台單獨的電腦上運行,也可以被分布在一個網路的伺服器端和客戶端運行。另外,Java還可以被用來編寫容量很小的應用程序模塊或者applet,做為網頁的一部分使用。applet可使網頁使用者和網頁之間進行互動式操作。

『伍』 如何在hadoop-2.6.0上編譯運行自己編寫的java代碼

在不使用eclipse情況使java程序在hadoop 2.2中運行的完整過程。整個過程中其實分為java程序的編譯,生成jar包,運行測試。x0dx0a這三個步驟運用的命令都比較簡單,主要的還是如何找到hadoop 2.2提供給java程序用來編譯的jar包。具體可以查看:x0dx0aHADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib目錄x0dx0a下面會通過一個在hadoop中創建一個目錄的JAVA例子來進行演示x0dx0a具體代碼如下:x0dx0ax0dx0apackage com.wan.demo;x0dx0ax0dx0aimport java.io.IOException;x0dx0aimport org.apache.hadoop.conf.Configuration;x0dx0aimport org.apache.hadoop.fs.FileSystem;x0dx0aimport org.apache.hadoop.fs.Path;x0dx0ax0dx0apublic class HADemo {x0dx0ax0dx0apublic static void main(String[] args) {x0dx0a// TODO Auto-generated method stubx0dx0amkdir(args[0]);x0dx0a}x0dx0ax0dx0apublic static void mkdir(String dir){x0dx0aConfiguration configuration=new Configuration();x0dx0aFileSystem fs;x0dx0atry {x0dx0afs = FileSystem.get(configuration);x0dx0afs.mkdirs(new Path(dir));x0dx0afs.close();x0dx0a} catch (IOException e) {x0dx0a// TODO Auto-generated catch blockx0dx0ae.printStackTrace();x0dx0a}x0dx0a}x0dx0a}x0dx0ax0dx0a把HADemo.java文件拷貝到linux環境中x0dx0a配置HADOOP_HOME/bin到環境中,啟動集群,進入HADemo.java文件目錄中x0dx0a注:下面的lib目錄裡面的文件由HADOOP_HOME/share/hadoop/httpfs/tomcat/webapps/ webhdfs/WEB-INF/lib目錄中獲取,下面做的目的是為了縮減命令長度x0dx0a1.編譯javax0dx0a# mkdir classx0dx0a#Javac -classpath .:lib/hadoop-common-2.2.0.jar:lib/hadoop-annotations-2.2.0.jar -d class HADemo.javax0dx0a2.生成jar包x0dx0a#jar -cvf hademo.jar -C class/ .x0dx0aadded manifestx0dx0aadding: com/(in = 0) (out= 0)(stored 0%)x0dx0aadding: com/wan/(in = 0) (out= 0)(stored 0%)x0dx0aadding: com/wan/demo/(in = 0) (out= 0)(stored 0%)x0dx0aadding: com/wan/demo/HADemo.class(in = 844) (out= 520)(deflated 38%)x0dx0a3.測試運行x0dx0a#hadoop jar hademo.jar com.wan.demo.HADemo /testx0dx0a檢測:x0dx0a#hadoop fs -ls /x0dx0a x0dx0a結束!

閱讀全文

與命令編譯java代碼相關的資料

熱點內容
at89c51編程器 瀏覽:341
項目經理叫醒程序員 瀏覽:342
autocad旋轉命令 瀏覽:660
手機版wpsoffice怎麼打包文件夾 瀏覽:579
在成都學車用什麼app 瀏覽:818
grep命令管道 瀏覽:426
java修改重啟 瀏覽:567
單片機供電方案 瀏覽:770
airpodspro一代怎麼連接安卓 瀏覽:218
豌豆莢app上有什麼游戲 瀏覽:283
公路商店app標簽選什麼 瀏覽:339
linuxoracle命令行登錄 瀏覽:227
android深度休眠 瀏覽:173
php微信開發例子 瀏覽:845
醫得app登錄密碼是什麼 瀏覽:142
spring開發伺服器地址 瀏覽:411
伺服器上如何查看伺服器的埠 瀏覽:678
單片機伺服器編譯 瀏覽:770
單口usb列印機伺服器是什麼 瀏覽:859
戰地五開伺服器要什麼條件 瀏覽:956