導航:首頁 > 源碼編譯 > java選擇性編譯

java選擇性編譯

發布時間:2024-05-10 22:13:08

1. 如何編譯一個java文件

javac 用於編譯Java文件,格式為:
java [options] [sourcefiles] [@files]
其中:
options:命令行選項;
sourcefiles:一個或多個要編譯的源文件;
@files:一個或多個對源文件進行列表的文件,有時候要編譯的文件很多,一個個敲命令會顯得很長,也不方便修改,可以把要編譯的源文件列在文件中,在文件名前加@,這樣就可以對多個文件進行編譯,對編譯一個工程很有用,方便,省事。
有幾個比較重要的選項:
-d 用於指定編譯成的class文件的存放位置,預設情況下不指定class文件的存放目錄,編譯的class文件將和源文件在同一目錄下;
-classpath 可以簡寫成-cp,用於搜索編譯所需的class文件,指出編譯所用到的class文件的位置,如jar、zip或者其他包含class文件的目錄,指定該選項會覆蓋CLASSPATH的設定;
-sourcepath用於搜索編譯所需的源文件(即java文件),指定要搜索的源文件的位置,如jar、zip或其他包含java文件的目錄;
需要注意windows下和linux下文件路徑分隔符和文件列表(即-classpath和-sourcepath指定的文件)分隔符的區別:
windows下文件路徑分隔符用 \ ,文件列表分隔符用分號 ;
linux下文件路徑分隔符用 / ,文件列表分隔符用冒號 :

2. 從思路開始 Java如何實現條件編譯的技巧

條件編譯絕對是一個好東西。如在C或Cpp中,可以通過預處理語句來實現條件編譯。代碼如下:
#IFDEF DEBUG#UNDEF DEBUG#ENDIF #define DEBUG #IFDEF DEBUUG /* code block 1 */#ELSE /* code block 2 */#ENDIF


但是在JAVA中卻沒有預處理,宏定義這些東西,而有時我們可能需要條件編譯。那麼,在JAVA中,該如何實現條件編譯呢?
我們來看一個例子。
編寫一個helloworld程序。代碼如下:

public class Hello { public static void main(String[] args) { System.out.println("Hello, world!"); }}


保存為Hello.java並編譯,得到一個class文件,並且觀察到文件大小是417位元組。然後我們對這個文件進行反編譯,用jd-gui。得到代碼如下:

import java.io.PrintStream;public class Hello { public static void main(String[] paramArrayOfString) { System.out.println("Hello, world!"); }}


得到這個有什麼用呢?
現在我們再來對源代碼進行修改,修改後的代碼如下。

public class Hello { public static void main(String[] args) { if(false) { System.out.println("Hello, world!"); } }}

進行編譯,這時我們再看它的大小,只有255位元組。怎樣?想到什麼了吧?沒錯,編譯器會對代碼進行優化,對於條件永遠為false的語句,JAVA編譯器將不會對其生成位元組碼。

3. 如何編譯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。

(3)java選擇性編譯擴展閱讀

Java也是一種高級語言,要讓計算機執行你撰寫的Java程序,也得通過編譯程序的編譯。但是Java編譯程序並不直接將Java源代碼編譯為相依於計算機平台的0、1序列,而是將其編譯為位元組碼。

Java源代碼的擴展名為.java,經過編譯程序編譯之後生成擴展名為.class的位元組碼。

4. 如何用JAVAC一次性編譯多個包下的JAVA文件

1.利用-cp
cd xxx
dir *.java/s/b > srclist.txt
or dir x:/yyy/zzz/*.java/s/b > srclist.txt
javac -cp .;xxx/yyy/zzz.jar;x/y/z.jar -d classes @srclist.txt

2.直接使用

這個,主要是在做一個獨立的Java項目,它不依賴IDE,同時要在別人電腦上編譯運行
下面編譯運行用到了jar包、properties文件。首先進入項目的根目錄下,注意:每一行,表示:DOS系統將執行的指令。
G:
cd testJava
上面,兩個命令為模擬,進入項目根目錄(具體目錄,根據自己程序所在目錄)。
javac -classpath .;../previousRecord.properties;../lib/jtds-1.2.5.jar;com/cjb/properities/jdbc.properties com/cjb/jdbc/*.java com/cjb/client/*.java -encoding UTF-8
上面命令,表示:編譯com/cjb/jdbc下所有java類和com/cjb/client下所有java類,這些類用到了previousRecord.properties文件(它的路徑是相對的)和jtds-1.2.5.jar的文件jar包(它的路徑也是相對的),同時用的編碼是UTF-8。
java -Xms64m -Xmx512m -cp .;../previousRecord.properties;../lib/jtds-1.2.5.jar;com/cjb/properities/jdbc.properties com/cjb/client/MailDispatcherOperation
上面命令,表示:執行com/cjb/client下的MailDispatcherOperation.class(它裡面有Main函數)。

5. 急!!!!java 文件怎麼編譯

舉個例子,假如一個java源文件(Test.java)放在e盤java文件夾下,則編譯並運行按照如下步驟:
1、在dos下輸入e:然後回車
2、輸入cd java然後回車
3、輸入javac Test.java然後回車
4、輸入java Test然後回車

6. 簡述JAVA程序的編輯編譯和運行過程

第一步(編譯): 創建完源文件之後,程序會先被編譯為.class文件。Java編譯一個類時,如果這個類所依賴的類還沒有被編譯,編譯器就會先編譯這個被依賴的類,然後引用,否則直接引用,這個有點象make。

如果java編譯器在指定目錄下找不到該類所其依賴的類的.class文件或者.java源文件的話,編譯器話報「cant find symbol」的錯誤。

第二步(運行):java類運行的過程大概可分為兩個過程:1、類的載入 2、類的執行。需要說明的是:JVM主要在程序第一次主動使用類的時候,才會去載入該類。也就是說,JVM並不是在一開始就把一個程序就所有的類都載入到內存中,而是到不得不用的時候才把它載入進來,而且只載入一次。

特別說明:java類中所有public和protected的實例方法都採用動態綁定機制,所有私有方法、靜態方法、構造器及初始化方法<clinit>都是採用靜態綁定機制。而使用動態綁定機制的時候會用到方法表,靜態綁定時並不會用到。

(6)java選擇性編譯擴展閱讀:

Java整個編譯以及運行的過程相當繁瑣,本文通過一個簡單的程序來簡單的說明整個流程。

Java代碼編譯:是由Java源碼編譯器來完成;

Java位元組碼的執行:是由JVM執行引擎來完成

Java程序從源文件創建到程序運行要經過兩大步驟:

1、源文件由編譯器編譯成位元組碼(ByteCode)

2、位元組碼由java虛擬機解釋運行。因為java程序既要編譯同時也要經過JVM的解釋運行,所以說Java被稱為半解釋語言( "semi-interpreted" language)。

7. java怎麼編譯

如果是在命令行下編譯,可以進入相應的目錄然後輸入
javac [你的java文件名.java]
想要運行就輸入
java [你編譯後的class文件名]
例如你的java文件名叫demo.java,在D盤根目錄下
在命令行下進入D盤,輸入
javac demo.java 就能編譯了。
要運行就輸入
java demo就可以運行了。

如果用IDE工具開發,直接按工具欄上的綠色箭頭就可以自動編譯運行了。

閱讀全文

與java選擇性編譯相關的資料

熱點內容
如何讓伺服器運行緩慢 瀏覽:238
黑馬程序員入學流程 瀏覽:448
win732位安裝python什麼版本 瀏覽:786
壓縮方式標准 瀏覽:558
免費低吸指標源碼 瀏覽:182
MO命令是 瀏覽:46
python入門常見錯誤 瀏覽:410
改加密包名 瀏覽:785
程序員在線編譯器 瀏覽:247
山東兼職程序員收費標准 瀏覽:424
物業管理系統項目java源碼 瀏覽:14
林皋pdf 瀏覽:586
vue編譯後命名 瀏覽:731
可以發布命令的 瀏覽:954
安卓系統如何領取國旗 瀏覽:330
chromium編譯linux 瀏覽:471
exe在線反編譯工具 瀏覽:367
imbatest命令 瀏覽:410
android自動連接指定wifi 瀏覽:491
用紙做超簡單又解壓的東西 瀏覽:596