windows命令列中java和javac、javap使用詳解(java編譯命令)

來源:互聯網
上載者:User

標籤:

最近重新複習了一下java基礎,這裡便講講對於一個類檔案如何編譯、運行、反編譯的。也讓自己加深一下印象  

如題,首先我們在案頭,開始->運行->鍵入cmd 斷行符號,進入windows命令列。進入的畫面:

可知,當前預設目錄為C盤Users檔案夾下的Administrator檔案夾。一般而言,我們習慣改變目前的目錄。由於windows有磁碟分割,若要跳到其他磁碟,例如E盤,有幾種方法:

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

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

希望在windows命令列下使用javac、java、javap等命令,那麼當前電腦必須安裝了jdk,並且將jdk的bin目錄添加到環境變數path下了。這個不用多說。那麼讓我們看一下如何使用javac、java、javap吧。

一、javac

javac是用來編譯.java檔案的。命令列下直接輸入javac可以看到大量提示資訊,提示javac命令的用法,我只知道常用的。

javac -d destdir srcFile

其中:1、-d destdir是用來指定存放編譯產生的.class檔案的路徑。(若此選項省略,那麼預設在目前的目錄下產生.class檔案,並且沒有產生包檔案夾;目前的目錄可以用“.”來表示,即:javac -d . srcFile )

注意:添加-d選項除了可以指定編譯產生的.class檔案的路徑外,最大的區別是可以將源檔案首行的package關鍵字下的包名在當前路徑下組建檔案夾。

2、srcFile是源檔案.java檔案的路徑。

例如:有這樣一個簡單的java類,路徑為E:\test\JavacTest.java:

複製代碼 代碼如下:
package com.stopTalking.test;      public class JavacTest {          public static void main(String[] args) {      
        byte a = 5;       
        short b = 6;       
        System.out.println("JavacTest [a=" + a + ", b=" + b +  "]");       
    }       
}

當前路徑下,輸入 javac JavacTest.java ,便在當前路徑下產生了一個JavacTest.class的檔案,

注意:JavacTest.java是一個首行標註了package的java檔案,而此時它在硬碟上的目錄並未對應它的包名,所以,使用java com.stopTalking.test.JavacTest運行時是無法找到該java的。

若輸入,javac –d . JavacTest.java ,那麼產生的JavacTest.class便在目前的目錄下產生的包檔案中了,

二、java

此時,我們希望運行該類,在大部分的教材中,使用java JavacTest便可直接運行,可是我們發現出現這樣的錯誤:

這是因為,大部分的教材使用的類是預設包名的,即源檔案的第一行是沒有package指定包名的。使用一個類,我們知道,是需要使用它的全限定類名的。

所以,我們在命令列輸入:java com/stopTalking/test/JavacTest,便可看到正確的結果了:

總結:使用簡單的java命令運行一個.class檔案,不僅需要使用該類的全限定類名,而且需要在當前路徑下有該類的包層次檔案夾。這必須要求編譯時間使用-d選項。否則需要自己來建立包層次檔案夾。

三、javap

javap主要用於協助開發人員深入瞭解Java編譯器的機制,主要選項有:

-c 分解方法代碼,即顯示每個方法具體的位元組碼

-public | protected | package | private 用於指定顯示哪種層級的類成員

-verbose 指定顯示更進一步的詳細資料

輸入 javap -c com/stopTalking/test/JavacTest,顯示

windows命令列中java和javac、javap使用詳解(java編譯命令)(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.