程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java編程語言編譯器

Java編程語言編譯器

編輯:關於JAVA

SYNOPSIS[提要]

Javac [options] [sourcefiles] [@files]

oldJavac [options] [soucefiles] [@files]

參數可疑位任意順序

options

命令行選項

sourcefiles

一個或多個原文件

@files

一個或多個列有原文件列表的文件

DESCRIPTION[說明]

Javac工具讀由Java編程語言編寫的類(class)和接口(interface)的定義,並將它們編譯成字節代碼的class文件

有兩種將原文件名傳遞給Javac的方法

* 文件數量教少,可簡單將文件名列在命令行上

* 文件數量較多,將文件名列在一個文件中,文件名用空格(包括tab)或換行隔開.將該文件前加"@"字符後,使用Javac編譯

原文件必須有.Java後綴名,類(class)文件必須以.class為後綴名.原文件和類文件必須有定位該類的根文件名(即,去掉後綴的文件名).例如: 一個命名為MyClass的的類,原文件名應為MyClass.Java,該原文件將被編譯成字節代碼的名為MyClass.class的類文件.

嵌套類(inner class)的定義將產生附加的類文件.這些類文件的文件名由外部類名(outer class names)和嵌套類名合並而成. 例如, MyClass$MyInnerClass.class

你應該將原文件放置在能反應它們package tree的目錄下.例如,如果你將所有的原文件放置在/workspace目錄下,com.mysoft.mypack.MyClass類的原文件(即 .Java文件)應該為/workspace/com/mysoft/mypack/MyClass.Java

[對Windows: 以上應為.例如你將所有的原文件放置在c:\workspace目錄下,com.mysoft.mypack.MyClass類的原文件應為c:\workspace\com\mysoft\mypack\MyClass.Java ]

缺省情況下,編譯器將把類文件(.class文件)放置到和原文件(.Java)相同的目錄下.你可以通過使用-d選項指定目標目錄(見選項的說明)

查找類型

當編譯一個文件時,編譯器通常需要關於它暫時無法鑒別的類型的信息. 編譯器需要每一個在文件中使用的,extened或implemented的類或接口的類型信息. 它包括在文件中沒有明顯提級的,但是有可能通過繼承來提供信息的類或接口.

例如: 當你繼承Java.applet.Applet,你同時也使用了Applet類的祖先:Java.awt.Panel,

Java.awt.Container,Java.awt.Component和Java.awt.Object.

當編譯器需要類型信息時,它尋找定義了類型信息的原文件或類文件.編譯器首先尋找boottrap和extension類(這些除非你使用編譯器選項,否則不需要關心),接著查找用戶的類路徑,用戶的類路徑通過CLASSPATH環境變量或使用命令行選項-classpath來定義.(細節,請看*設置Class Path*),如果使用-sourcepath命令行選項,編譯器將在該路徑下查找原文件,否則編譯器將在用戶類路徑下同時查找類文件和原文件. 你可以通過使用-bootclasspath和-extdirs命令行選項來設置不同的bootstrap和extension類;見下面的Cross-Compilation options

一次成功的查找將找到一個類文件,原文件或兩者.下面是Javac如何處理每一種情況

*查找找到一個類文件(.class文件)但無原文件(.Java文件): Javac使用了類文件

*查找找到一個原文件但無類文件: Javac將編譯該原文件,然後使用生成的類文件

*查找找到兩者: Javac判斷類文件是否過期.如果類文件過期,Javac將重新編譯原文件並將使用更新後的類文件.否則,Javac將使用該類文件(沒有過期)

缺省情況下,Javac通過比較原文件和類文件的更改日期來判斷類文件是否過期.( -Xdepend選項提供了一個慢一些,但是更可靠的方法)

主意: Javac將默默(不輸出信息)地:-)編譯那些沒有在命令行上指定的文件.使用-verbose選項可以來跟蹤自動編譯過程.

[FILELIST]文件列表

為使Javac的命令行短小或更簡單,你可以指定一個或多個文件,這些文件每行含有一個文件名.在命令行,在這些文件前使用'@'字符來指定它們是文件列表.當Javac遇到一個的名開頭為"@",它將認為在該文件中的文件名為需要處理的文件的名子

例如: 你可以將所有的原文件列在一個名為sourcefile的文件中.這個文件可能如此:

MyClass1.Java

MyClass2.Java

MyClass3.Java

你可以通過

% Javac @sourcefiles

[ Windows: c:\jdk1.4\bin\Javac @sourcefiles]

編譯MyClass1.Java,MyClass2.Java,MyClass3.Java

OPTIONS[選項]

Javac有一系列的標准選項,這些選項被當前開發環境所支持,並且將在以後的發行版中繼續被支持.一些非標准的選項為專門為當前的虛擬機和編譯實現.它們將在將來改變.(非標准選項以-X開頭)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved