【Android自動化打包】02. javac的用法

yangxi_001發表於2014-03-13
javac 是javac語言程式設計編譯器。javac工具讀由java語言編寫的類和介面的定義,並將它們編譯成位元組程式碼的class檔案。javac 可以隱式編譯一些沒有在命令列中提及的原始檔。
javac命令用法如下:

一 . 檢視javac的幫助命令


操作步驟:cmd-->回車-- > 輸入javac -help ,可檢視javac的命令


二. 例項演示:

 前提條件:

先來段HelloWorld.java儲存到e:\Software\EclipseWorkspace\wirelessqa\src\com\wqa\test\   資料夾下面

package com.wqa.test;

/**
 * @author Xiaopeng
 *
 */
public class HelloWorld {

        public static void main(String[] args) {
              System. out.println("hello world" );

       }

}

2.1. 把編譯檔案存放到類同級目錄下   

命令: javac e:\Software\EclipseWorkspace\wirelessqa\src\com\wqa\test\HelloWorld.java

結果: 編譯檔案會存放在類檔案同一個目錄 下


2.2. 把編譯檔案存放到指定的位置      

命令:javac -d <編譯檔案存放位置> <類的存位置>

步驟:
      1.  cmd--回車--重定向到e盤(自已定義,看檔案存放在哪裡)

          2.    輸入:E:\>javac -d Software\EclipseWorkspace\classes Software\EclipseWorkspace\wirelessqa\src\com\wqa\test\HelloWorld.java

          3.     回車,到資料夾 E:\Software\EclipseWorkspace\classes\com\wqa\test 檢視編譯結果




2.3.  執行編譯過的類檔案 **.class檔案   

命令: java -cp <**.class檔案存放的資料夾+空格+類名>

例項演示:
     public class HelloWorld {

        public static void main(String[] args) {
              System. out.println("hello world" );

       }

HelloWorld.java 存放到在E盤根目錄下,執行javac e:\HelloWorld.java 編譯,生成HelloWorld.class

執行:java -cp e:\ HelloWorld

結果:hello world

2.4. 編譯有外部引用的類  

命令: java -cp <jar包存放路徑> <類檔案存放路徑>

例項演示:
import com.auto.operate.*; //引用AutoMonkey.jar中的類

/**
 * @author Xiaopeng
 *
 */
public class HelloWorld {

        public static void main(String[] args) {
               new SystemUtils().print("hello world" );
       }

}

這裡引用一個包com.auto.operate.*; 這個jar包位於e盤根目錄下:AutoMonkey.jar

1. 如果直接 javac E:\HelloWorld.java 則會報錯 

2. 如果指定jar包 則編譯正常:javac -cp E:\AutoMonkey.jar E:\HelloWorld.java

編譯成功,重成HelloWorld.class


說明: 
如果當前你要編譯的java檔案中引用了其它的類,但該引用類的.class檔案不在當前目錄下(或在其他目錄下,或在.zip/.jar內),
這種情況下就需要在javac命令後面,加上-cp/-classpath引數來指明這些類的位置。 一般來說有三種指定方式:

              ① 絕對或相對路徑:javac -cp e:/AutoMonkey.jar HelloWorld.java 或 javac -cp ../AutoMonkey.jar HelloWorld.java   (其中 .. 表示上一級目錄 )

              ② 系統變數:javac -cp %CLASSPATH% HelloWorld.java (其中:%CLASSPATH%表示使用系統變數CLASSPATH的值進行查詢,
                          這裡假設AutoMonkey.jar的路徑就包含在CLASSPATH系統變數中)

              ③ 當前目錄: javac -cp ./AutoMonkey.jar HelloWorld.java (其中 . 表示當前目錄 )

完整的編譯執行一下:

     注意:    ①-cp的路徑不僅指定了所需要的AutoMonkey.jar的位置,還必須指出編譯後的Test.class的位置。

               ② 類路徑中的不同專案要用分隔符區分,Unix系統的分隔符是冒號(:)Windows的是分號(;)

轉自:http://blog.csdn.net/wirelessqa

相關文章