① java安裝後JDK/bin目錄下的許多exe文件有什麼用途。
javac:Java編譯器,將Java源代碼換成位元組代
java:Java解釋器,直接從類文件執行Java應用程序代碼
appletviewer(小程序瀏覽器):一種執行HTML文件上的Java小程序類的Java瀏覽器
javadoc:根據Java源代碼及其說明語句生成的HTML文檔
jdb:Java調試器,可以逐行地執行程序、設置斷點和檢查變數
javah:產生可以調用Java過程的C過程,或建立能被Java程序調用的C過程的頭文件
Javap:Java反匯編器,顯示編譯類文件中的可訪問功能和數據,同時顯示位元組代碼含義
jar:多用途的存檔及壓縮工具,是個java應用程序,可將多個文件合並為單個JAR歸檔文件。
htmlConverter——命令轉換工具。
native2ascii——將含有不是Unicode或Latinl字元的的文件轉換為Unicode編碼字元的文件。
serialver——返回serialverUID。語法:serialver [show] 命令選項show是用來顯示一個簡單的界面。輸入完整的類名按Enter鍵或"顯示"按鈕,可顯示serialverUID。
補充詳細:
javac.exe
用法:javac <選項> <源文件>
可能的選項包括:
-g 生成所有調試信息
-g:none 生成無調試信息
-g:{lines,vars,source} 生成只有部分調試信息
-O 優化;可能妨礙調試或者增大類文件
-nowarn 生成無警告
-verbose 輸出關於編譯器正在做的信息
-deprecation 輸出使用了不鼓勵使用的API的源程序位置
-classpath <路徑> 指定用戶類文件的位置
-sourcepath <路徑> 指定輸入源文件的位置
-bootclasspath <路徑> 覆蓋自舉類文件的位置
-extdirs <目錄(多個)> 覆蓋安裝的擴展類的位置
-d <目錄> 指定輸出類文件的位置
-encoding <編碼> 指定源文件中所用的字元集編碼
-target <版本> 生成指定虛擬機版本的類文件
-help Print a synopsis of standard options
appletviewer.exe
用法:appletviewer <options> url
其中,<options> 包括:
-debug 在 Java 調試器中啟動 applet 小程序查看器
-encoding <encoding> 指定由 HTML 文件使用的字元編碼
-J<runtime flag> 向 Java 解釋器傳遞參數
-J 選項不是標准選項,如有更改,不另行通知。
====================
jar.exe
用法:jar {ctxu}[vfm0M] [jar-文件] [manifest-文件] [-C 目錄] 文件名 ...
選項:
-c 創建新的存檔
-t 列出存檔內容的列表
-x 展開存檔中的命名的(或所有的〕文件
-u 更新已存在的存檔
-v 生成詳細輸出到標准輸出上
-f 指定存檔文件名
-m 包含來自標明文件的標明信息
-0 只存儲方式;未用ZIP壓縮格式
-M 不產生所有項的清單(manifest〕文件
-i 為指定的jar文件產生索引信息
-C 改變到指定的目錄,並且包含下列文件:
如果一個文件名是一個目錄,它將被遞歸處理。
清單(manifest〕文件名和存檔文件名都需要被指定,按'm' 和 'f'標志指定的相同順序。
示例1:將兩個class文件存檔到一個名為 'classes.jar' 的存檔文件中:
jar cvf classes.jar Foo.class Bar.class
示例2:用一個存在的清單(manifest)文件 'mymanifest' 將 foo/ 目錄下的所有
文件存檔到一個名為 'classes.jar' 的存檔文件中:
jar cvfm classes.jar mymanifest -C foo/ .
javadoc.exe
用法:javadoc [options] [packagenames] [sourcefiles] [classnames] [@files]
-overview <file> 讀取 HTML 格式的概述文檔
-public 僅顯示 public 類和成員
-protected 顯示 protected/public 類和成員(預設)
-package 顯示 package/protected/public 類和成員
-private 顯示所有類和成員
-help 顯示命令行選項
-doclet <class> 通過候選 doclet 生成輸出
-docletpath <path> 指定 doclet 類文件的查找位置
-sourcepath <pathlist> 指定源文件的查找位置
-classpath <pathlist> 指定用戶類文件的查找位置
-exclude <pkglist> Specify a list of packages to exclude
-subpackages <subpkglist> Specify subpackages to recursively load
-breakiterator Compute 1st sentence with BreakIterator
-bootclasspath <pathlist> 覆蓋自舉類載入器所載入的類文件的位置
-source <release> Provide source compatibility with specified release
-extdirs <dirlist> 覆蓋已安裝的擴展的位置
-verbose 有關 Javadoc 所做工作的輸出信息
-locale <name> 所用的 Locale,例如 en_US 或 en_US_WIN
-encoding <name> 源文件編碼名稱
-J<flag> 將 <flag> 直接傳給運行時系統
由標准 doclet 提供:
-d <directory> 輸出文件的目標目錄
-use 創建類和包的用法頁
-version 包含 @version 段
-author 包含 @author 段
-docfilessubdirs Recursively doc-file subdirectories
-splitindex 將索引分為每個字母對應一個文件
-windowtitle <text> 文檔的瀏覽器窗口標題
-doctitle <html-code> 包含包索引頁(首頁)的標題
-header <html-code> 包含每一頁的頁眉文本
-footer <html-code> 包含每一頁的頁腳文本
-bottom <html-code> 包含每一頁的頁底文本
-link <url> Create links to javadoc output at <url>
-linkoffline <url> <url2> Link to docs at <url> using package list at <url2>
-excludedocfilessubdir <name1>:.. Exclude any doc-files subdirectories with given name.
-group <name> <p1>:<p2>.. Group specified packages together in overview page
-nocomment Supress description and tags, generate only declarations.
-nodeprecated 不包含 @deprecated 信息
-noqualifier <name1>:<name2>:... Exclude the list of qualifiers from the output.
-nosince Do not include @since information
-nodeprecatedlist 不生成不鼓勵使用的列表
-notree 不生成類層次
-noindex 不生成索引
-nohelp 不生成幫助鏈接
-nonavbar 不生成導航欄
-quiet Do not display status messages to screen
-serialwarn Generate warning about @serial tag
-tag <name>:<locations>:<header> Specify single argument custom tags
-taglet The fully qualified name of Taglet to register
-tagletpath The path to Taglets
-charset <charset> Charset for cross-platform viewing of generated documentation.
-helpfile <file> 包含幫助鏈接功能鏈接到目標的文件
-linksource Generate source in HTML
-stylesheetfile <path> 改變所生成文檔的樣式的文件
-docencoding <name> 輸出編碼名稱
javah.exe
用法:javah [options] <classes>
其中 [options] 包括:
-help 列印該幫助信息
-classpath <path> 類的載入路徑
-bootclasspath <path> 自舉類的載入路徑
-d <dir> 輸出目錄
-o <file> 輸出文件(僅能使用 -d 或 -o 之一)
-jni 生成 JNI 風格的頭文件(預設)
-old 生成 JDK1.0 風格的頭文件
-stubs 生成 stubs 文件
-version 列印版本信息
-verbose 輸出有關本命令所做工作的信息
-force 始終寫輸出文件
指定 <classes> 時必須使用全名(例如 java.lang.Object)。
javaw.exe
====================
HtmlConverter.exe
用法:HtmlConverter [-option1 value1 [-option2 value2 [...]]] [-simulate] [filespecs]
其中,選項包括:
-source: 獲取源文件的路徑。 預設值: <userdir>
-dest: 寫入已轉換文件的路徑。 預設值: <userdir>
-backup: 寫備份文件的路徑。 預設值: <dirname>_BAK
-f: 強制覆寫備份文件。
-subdirs: 應處理子目錄中的文件。
-template: 模板文件的路徑。 如果不確定,請使用預設值。
-log: 寫日誌的路徑。 如果沒有提供,則不會寫入任何日誌。
-progress: 轉換時顯示進度。 預設值: true
-simulate: 在沒有進行轉換時顯示特定於轉換的信息。
-latest: 使用最新的 JRE 支持發行版 mimetype。
-gui: 顯示轉換程序的圖形用戶界面。
filespecs: 用空格分開的文件說明列表。 預設值: "*.html *.htm" (需要引號)
orbd.exe
用法:orbd <選項>
其中,<選項> 包括:
-port 啟動 ORBD 的激活埠,預設值為 1049 (可選)
-defaultdb ORBD 文件的目錄,預設值為 "./orb.db" (可選)
-serverid ORBD 的伺服器標識符,預設值為 1 (可選)
-ORBInitialPort 初始埠(必需)
-ORBInitialHost 初始主機名稱(必需)
====================
policytool.exe
用法:policytool [選項]
[-file <file>] 規則文件位置
====================
rmic.exe
用法:rmic <選項> <類名>
其中 <選項> 包括:
-keep 不刪除中間生成的源文件
-keepgenerated (同 "-keep")
-v1.1 為 1.1 stub 協議版本創建 stubs/skeleton
-vcompat (預設)創建與 1.1 和
1.2 stub 協議版本兼容的 stubs/skeleton
-v1.2 僅為 1.2 stub 協議版本創建 stubs
-iiop 為 IIOP 創建 stubs。當使用該選項時,<選項>還應包括:
-always 總創建 stubs (即使在它們同時出現時〕
-alwaysgenerate (同 "-always")
-nolocalstubs 不創建為同一進程優化的 stubs
-idl 創建 IDL。當使用該選項時,<選項>還應包括:
-noValueMethods 不生成值類型的方法
-always 總創建 IDL (即使在它們同時出現時〕
-alwaysgenerate (同 "-always")
-g 一般調試信息
-depend 以遞歸方式重編譯過期的文件
-nowarn 不警告
-nowrite 不將編譯過的類寫入到文件系統
-verbose 輸出有關編譯器所做工作的信息
-classpath <path> 指定輸入源和類文件的查找位置
-sourcepath <path> 指定用戶源文件的查找位置
-bootclasspath <path> 覆蓋自舉類文件的位置
-extdirs <path> 覆蓋安裝擴展類的位置
-d <directory> 指定所生成類文件的放置位置
-J<runtime flag> 將參數傳給 java 解釋程序
====================
rmid.exe
用法:rmid <option>
其中,<option> 包括:
-port <option> 指定供 rmid 使用的埠
-log <directory> 指定 rmid 將日誌寫入的目錄
-stop 停止當前的 rmid 調用(對指定埠)
-C<runtime 標記> 向每個子進程傳遞參數(激活組)
-J<runtime 標記> 向 java 解釋程序傳遞參數
====================
rmiregistry.exe
用法: rmiregistry <選項> <埠>
其中,<選項> 包括:
-J<runtime 標記> 將參數傳遞到 java 解釋程序
====================
serialver.exe
用法:serialver [-classpath classpath] [-show] [classname...]
====================
servertool.exe
歡迎使用 Java IDL 伺服器工具
請在提示處輸入命令
servertool > help
可用命令:
-------------------
register - 注冊一個可激活的伺服器
unregister - 取消伺服器注冊
getserverid - 返回應用程序名稱的伺服器標識符
list - 列舉所有已注冊伺服器
listappnames - 列舉當前定義的應用程序名稱
listactive - 列舉當前活動的伺服器
locate - 將已注冊伺服器定位在特定類型的埠
locateperorb - 為已注冊伺服器的特定對象請求代理程序定位埠。
orblist - 對象請求代理程序 (orb) 名稱及其映射列表
shutdown - 關閉一個已注冊伺服器
startup - 啟動一個已注冊伺服器
help - 取得幫助
quit - 退出此工具
====================
rmic
功能說明:
rmic 為遠程對象生成 stub 和 skeleton。
語法:
rmic [ options ] package-qualified-class-name(s)
補充說明:
rmic 編譯器根據編譯後的 Java 類(含有遠程對象實現)名,為遠程對象生成 stub 和 skeleton(遠程對象是指實現 java.rmi.Remote 介面的對象)。在 rmic 命令中所給的類必須是經 javac 命令成功編譯且是完全包限定的類。
命令選項
-classpath[路徑] 指定 rmic 用於查詢類的路徑。如果設置了該選項,它將覆蓋預設值或 CLASSPATH 環境變數。目錄用冒號分隔。
-d[目錄] 指定類層次的根目錄。此選項可用來指定 stub 和 skeleton 文件的目標目錄。
-depend 使編譯器考慮重新編譯從其它類引用的類。 一般來說,它只重新編譯從源代碼引用的遺漏或過期的類。
-g 允許生成調試表格。調試表格含有行號和局部變數的有關信息,即 Java 調試工具所使用的信息。預設情況下,只生成行號。
-J 與 -D 選項聯用,它將緊跟其後的選項( -J 與 -D 之間無空格)傳給 java 解釋器。
-keepgenerated 為 stub 和 skeleton 文件保留所生成的 .java 源文件,並將這些源文件寫到與 .class 文件相同的目錄中,如果要指定目錄,則使用 -d 選項。
-nowarn 關閉警告。如果使用該選項,則編譯器不輸出任何警告信息。
-show 顯示 rmic 編譯器的 GUI(圖形用戶界面)。輸入一個或多個包限定類名(以空格分隔),並按回車鍵或「顯示」按鈕,創建 stub 和 skeleton。
-vcompat (預設值)創建與 JDK 1.1 和 1.2 stub 協議版本都兼容的 stub 和 skeleton。
-verbose 使編譯器和鏈接器輸出關於正在編譯哪些類和正在載入哪些類文件的信息。
-v1.1 創建 JDK 1.1 stub 協議版本的 stub 和 skeleton。
-v1.2 只創建 JDK 1.2 stub 協議版本的 stub。
=================================
rmid
功能說明:
rmid 啟動激活系統守護進程,以便能夠在 Java 虛擬機上注冊和激活對象。
語法:
rmid [-port port] [-log dir]
補充說明:
rmid 工具啟動激活系統守護進程。必須先啟動激活系統守護進程,才能向激活系統注冊可被激活的對象或在 Java 虛擬機上激活可被激活的對象。
命令選項
-C<某些命令行選項> 指定一個選項,在創建每個 rmid 的子守護進程(激活組)時,該選項以命令行參數的形式傳給該子守護進程。
-log[目錄] 指定目錄的名稱,激活系統守護進程在該目錄中寫入其資料庫及相關信息。預設狀態下,將在執行 rmid 命令的目錄中創建一個 log 目錄。
-port[埠] 指定 rmid 的注冊服務程序所使用的埠。激活系統守護進程將 ActivationSystem 與該注冊服務程序中的名稱java.rmi.activation.ActivationSystem 捆綁在一起。
-stop 停止 -port 選項所指定埠上的當前 rmid 調用。若未指定埠,則將停止在埠 1098 上運行的 rmid。
=============================
rmiregistry
功能說明:
rmiregistry 命令可在當前主機的指定埠上啟動遠程對象注冊服務程序。
語法:
rmiregistry [port]
補充說明:
rmiregistry 命令在當前主機的指定 port 上創建並啟動遠程對象注冊服務程序。如果省略 port,則注冊服務程序將在 1099 埠上啟動。rmiregistry 命令不產生任何輸出而且一般在後台運行。遠程對象注冊服務程序是自舉命名服務。主機上的 RMI 伺服器將利用它將遠程對象綁定到名字上。客戶機即可查詢遠程對象並進行遠程方法調用。注冊服務程序一般用於定位應用程序需調用其方法的第一個遠程對象。該對象反過來對各應用程序提供相應的支持,用於查找其它對象。java.rmi.registry.LocateRegistry 類的方法可用於在某台主機或主機和埠上獲取注冊服務程序操作。java.rmi.Naming 類的基於 URL 的方法將對注冊服務程序進行操作,並可用於查詢遠程對象、將簡單(字元串)名稱綁定到遠程對象、將新名稱重新綁定到遠程對象(覆蓋舊綁定)、取消遠程對象的綁定以及列出綁定在注冊服務程序上的 URL。
=============================
serialver
功能說明:
serialver 命令返回 serialVersionUID。
語法:
serialver [ 命令選項 ]
補充說明:
serialver 以適於復制到演變類的形式返回一個或多個類的 serialVersionUID。不帶參數調用時,它輸出用法行。
命令選項
-show 顯示一個簡單的用戶界面。輸入完整的類名並按回車鍵或「顯示」按鈕可顯示 serialVersionUID。
================================
jarsigner
功能說明:
為 Java 歸檔 (JAR) 文件產生簽名,並校驗已簽名的 JAR 文件的簽名。
語法:
jarsigner [ 命令選項 ] jar-file alias
jarsigner -verify [ 命令選項 ] jar-file
補充說明:
jarsigner 工具用於兩個目的:
1:為 Java 歸檔 (JAR) 文件簽名
2:校驗已簽名的 JAR 文件的簽名和完整性
命令選項
-keystore[url] 指定密鑰倉庫的 URL。預設值是用戶的宿主目錄中的 .keystore 文件,它由系統屬性「user.home」決定。
-storetype[storetype] 指定要被實例化的密鑰倉庫類型。默認的密鑰倉庫類型是安全屬性文件中 "keystore.type" 屬性值所指定的那個類型,由 java.security.KeyStore 中的靜態方法 getDefaultType 返回。
-storepass[password] 指定訪問密鑰倉庫所需的口令。這僅在簽名(不是校驗)JAR 文件時需要。在這種情況下,如果命令行中沒有提供 -storepass 選項,用戶將被提示輸入口令。
-keypass[password] 指定用於保護密鑰倉庫項(由命令行中指定的別名標出)的私鑰的口令。使用 jarsigner 為 JAR 文件簽名時需要該口令。如果命令行中沒有提供口令,且所需的口令與密鑰倉庫的口令不同,則將提示用戶輸入它。
-sigfile[file] 指定用於生成 .SF 和 .DSA 文件的基本文件名。
-signedjar[file] 指定用於已簽名的 JAR 文件的名稱。
-verify 如果它出現在命令行中,則指定的 JAR 文件將被校驗,而不是簽名。如果校驗成功,將顯示「jar verified」。如果試圖校驗未簽名的 JAR 文件,或校驗被不支持的演算法(例如未安裝 RSA 提供者時使用的 RSA)簽名的 JAR 文件,則將有如下顯示: "jar is unsigned. (signatures missing or not parsable)" 。
-certs 如果它與 -verify 和 -verbose 選項一起出現在命令行中,則輸出將包括 JAR 文件的每個簽名人的證書信息。
-verbose 如果它出現在命令行中,則代表「verbose」模式,它使 jarsigner 在 JAR 簽名或校驗過程中輸出額外信息。
-internalsf 過去,JAR 文件被簽名時產生的 .DSA(簽名塊)文件包含一個同時產生的 .SF 文件(簽名文件)的完整編碼副本。這種做法已被更改。為了減小輸出 JAR 文件的整個大小,預設情況下 .DSA 文件不再包含 .SF 文件的副本。但是如果 -internalsf 出現在命令行中,將採用舊的做法。該選項主要在測試時有用;實際上不應使用它,因為這樣將消除有用的優化。
-sectionsonly 如果它出現在命令行中,則 JAR 文件被簽名時生成的 .SF 文件(簽名文件)將不包括含有整個清單文件的散列的頭。它僅包含 與 JAR 中每個單獨的源文件相關的信息和散列。該選項主要在測試時有用;實際上不應使用它,因為這樣將消除有用的優化。
-J[javaoption] 將指定的 javaoption 串直接傳遞到 Java 解釋器。((jarsigner 實際上是解釋器的一個 「wrapper」)。該選項不應含有任何空格。它有助於調整執行環境或內存使用。要獲得可用的解釋器選項的清單,可在命令行鍵入 java -h 或 java -X。
========================
keytool
功能說明:
管理由私鑰和認證相關公鑰的 X.509 證書鏈組成的密鑰倉庫(資料庫)。還管理來自可信任實體的證書。
語法:
keytool [ 命令 ]
補充說明:
keytool 是個密鑰和證書管理工具。它使用戶能夠管理自己的公鑰/私鑰對及相關證書,用於(通過數字簽名)自我認證(用戶向別的用戶/服務認證自己)或數據完整性以及認證服務。它還允許用戶儲存他們的通信對等者的公鑰(以證書形式)。
=======================
native2ascii
功能說明:
將含有本地編碼字元(既非 Latin1 又非 Unicode 字元)的文件轉換為 Unicode 編碼字元的文件。
語法:
native2ascii [options] [inputfile [outputfile]]
補充說明:
Java 編譯器和其它 Java 工具只能處理含有 Latin-1 和/或 Unicode 編碼(udddd 記號)字元的文件。native2ascii 將含有其它字元編碼的文件轉換成含 Latin-1 和/或 Unicode 編碼字元的文件。若省略 outputfile,則使用標准輸出設備輸出。此外,如果也省略 inputfile,則使用標准輸入設備輸入。
命令選項
-reverse 執行相反的操作:將含 Latin-1 和/或 Unicode 編碼字元的文件轉換成含本地編碼字元的文件。
-encoding[encoding_name] 指定轉換過程使用的編碼名稱。預設的編碼從系統屬性 file.encoding 中得到。
=======================
appletviewer
功能說明:
Java applet 瀏覽器。appletviewer 命令可在脫離萬維網瀏覽器環境的情況下運行 applet。
語法:
appletviewer [ threads flag ] [ 命令選項 ] urls ...
補充說明:
appletviewer 命令連接到 url 所指向的文檔或資源上,並在其自身的窗口中顯示文檔引用的每個 applet。注意:如果 url 所指向的文檔不引用任何帶有 OBJECT、EMBED 或 APPLET 標記的 applet,那麼 appletviewer 就不做任何事情。
命令選項
-debug 在 Java 調試器 jdb 中啟動 appletviewer,使您可以調試文檔中的 applet。
-encoding[編碼名稱] 指定輸入 HTML 文件的編碼名稱。
-J[javaoption] 將 javaoption 字元串作為單個參數傳給運行 appletviewer 的 Java 解釋器。參數不能含有空格。由多重參數組成的字元串,其中的每個參數都必須以前綴 -J 開頭,該前綴以後將被除去。這在調整編譯器的執行環境或內存使用時將很有用。
=========================
extcheck
功能說明:
extcheck 檢測目標 jar 文件與當前安裝方式擴展 jar 文件間的版本沖突。
語法:
extcheck [ -verbose ] targetfile.jar
補充說明:
extcheck 實用程序檢查指定 Jar 文件的標題和版本與 JDK TM 軟體中所安裝的擴展是否有沖突。在安裝某個擴展前,可以用該實用程序查看是否已安裝了該擴展的相同版本或更高的版本。
extcheck 實用程序將 targetfile.jar 文件清單的 specification-title 和 specification-version 頭與當前安裝在擴展目錄下所有 Jar 文件的相對應的頭進行比較(預設擴展目錄為 jre/lib/ext)。extcheck 實用程序比較版本號的方式與 java.lang.Package.isCompatibleWith 方法相同。若未檢測到沖突,則返回代碼為 0。如果擴展目錄中任何一個 jar 文件的清單有相同的 specification-title 和相同的或更新的 specification-version 號,則返回非零錯誤代碼。如果 targetfile.jar 的清單中沒有 specification-title 或 specification-version 屬性,則同樣返回非零錯誤代碼。
命令選項
-verbose 對擴展目錄中的 Jar 文件進行檢查時,列出文件。此外,還報告目標 jar 文件的清單屬性及所有沖突的 jar 文件。
=====================
jar
功能說明:
Java歸檔工具
語法:
jar [ 命令選項 ] [manifest] destination input-file [input-files]
補充說明:
jar工具是個java應用程序,可將多個文件合並為單個JAR歸檔文件。jar是個多用途的存檔及壓縮工具,它基於ZIP和ZLIB壓縮格式。然而,設計jar的主要目的是便於將java applet或應用程序打包成單個歸檔文件。將applet或應用程序的組件(.class 文件、圖像和聲音)合並成單個歸檔文件時,可以用java代理(如瀏覽器)在一次HTTP事務處理過程中對它們進行下載,而不是對每個組件都要求一個新連接。這大大縮短了下載時間。jar還能壓縮文件,從而進一步提高了下載速度。此外,它允許applet的作者對文件中的各個項進行簽名,因而可認證其來源。jar工具的語法基本上與tar命令的語法相同。
命令選項
-c 在標准輸出上創建新歸檔或空歸檔。
-t 在標准輸出上列出內容表。
-x[file] 從標准輸入提取所有文件,或只提取指定的文件。如果省略了file,則提取所有文件;否則只提取指定文件。
-f 第二個參數指定要處理的jar文件。在-c(創建)情形中,第二個參數指的是要創建的jar文件的名稱(不是在標准輸出上)。在-t(表(或-x(抽取)這兩種情形中,第二個參數指定要列出或抽取的jar文件。
-v 在標准錯誤輸出設備上生成長格式的輸出結果。
-m 包括指定的現有清單文件中的清單信息。用法舉例:「jar cmf myManifestFile myJarFile *.class」
-0 只儲存,不進行 ZIP 壓縮。
-M 不創建項目的清單文件。
-u 通過添加文件或更改清單來更新現有的 JAR 文件。例如:「jar -uf foo.jar foo.class」將文件 foo.class 添加到現有的JAR文件foo.jar中,而「jar umf manifest foo.jar」則用manifest中的信息更新foo.jar的清單。
-C 在執行 jar 命令期間更改目錄。例如:「jar -uf foo.jar -C classes *」將classes目錄內的所有文件加到foo.jar中,但不添加類目錄本身。
程序示例
1:將當前目錄下所有CLASS文件打包成新的JAR文件:
jar cf file.jar *.class
2:顯示一個JAR文件中的文件列表
jar tf file.jar
3:將當前目錄下的所有文件增加到一個已經存在的JAR文件中
jar cvf file.jar *
========================
javadoc
功能說明
Java API文檔生成器從Java源文件生成API文檔HTML頁。
語法:
javadoc [ 命令選項 ] [ 包名 ] [ 源文件名 ] [ @files ]
其中[ 包名 ]為用空格分隔的一系列包的名字,包名不允許使用通配符,如(*)。[ 源文件名 ]為用空格分
② 最近開始學java,大四的課,老師極度醬油。想自己學下。求學習方法。
基本要求:
1、 掌握Java語言的特點,實現機制和體系結構;
2、 掌握Java語言中的面向對象的特性;
3、 掌握Java語言提供的數據類型和結構;
4、 掌握Java語言編程的基本技術;
5、 會編寫Java用戶界面程序;
6、 會編寫Java簡單應用程序;
7、 會編寫Java小應用程序(Applet);
考試內容:
一、Java語言的特點和實現機制
1. 特點:
簡單性 去除了指針和多重繼承等內容
網路特性
面向對象
平台無關性,可移植性
穩定性 又稱魯棒性 有自動回收機制和異常處理機制
安全性 符合網路安全協議的
多線程性
解釋性 是java的一個缺點,因為解釋執行的語言一般會比編譯執行的語言的效率要低
2. 機制:
類:類是實例對象的模版,
介面:允許一個類實現多個介面
程序包:
多線程
取消指針
二、 Java體系結構
1. Java API;
i. 核心包java(熟練掌握一些重要的類,)
1. java.lang:
2. java.io
3. java.util
4. java.net
5. java.awt
6. java.awt.event
7. java.applet
8. java.sql
ii. 擴展功能包javax和org(分辨)
iii. 其他第三方的包(分辨)
2. JDK的下載,安裝與使用
i. 了解sun公司的網址
ii. 設置環境變數path和classpath(掌握)
iii. Jdk的操作命令,掌握以下基本命令:
1. javac——編譯命令 javac Test.java
2. java——運行命令 java Test
3. appletviewer ——Java Applet 瀏覽器 appletviewer Test.html
4. jar——java類文件歸檔命令
3. Java程序的編寫和編譯過程
i. 編寫文件的三點注意:
1. 掌握Java程序的結構,即:源程序中的三部分要素必須以包的聲明,引入類聲明,類或介面的定義的順序出現;
2. 掌握Java應用程序的入口main方法();
3. 一個源文件中只能有一個public class 類定義;且源文件的名字與public class 的類名相同(大小寫也要一致),擴展名必須是.java
ii. 編譯與運行:即javac和java命令的用法;
三、Java簡單數據類型及運算
1. 標識符和數據類型
i. Java的基本語法,了解語句,語句塊,注釋
ii. Java的標識符,能判斷標識符是否合法,了解標識符的風格約定
iii. 關鍵字,能分別大部分關鍵字,
iv. 基本數據類型,掌握八大基本數據類型和字元串類型;
2. 表達式和語句
i. 變數,了解變數的聲明及其作用域;
ii. 運算符,掌握算術運算符,關系運算符,邏輯運算符,位操作符,賦值運算符;掌握三元條件運算符,強制類型轉換運算符,了解其他運算符;能分辨運算符的優先順序順序;
3. 程序流控制(此處需要掌握的地方都是出簡單編程題的考點)
i. 掌握while和do while語句
ii. 掌握for語句
iii. 掌握if/else語句
iv. 掌握switch語句
v. 了解循環跳轉語句
4. 數組
i. 掌握一維數組的聲明,創建和初始化;
ii. 了解多維數組;
四、Java語言中面向對象的特性。
1. 了解面向對象編程的基本思想和他的基本特徵:
i. 程序中的所有東西都是對象;
ii. 程序是一系列對象的組合;
iii. 每個對象都有自己的存儲空間,可以容納其他對象;
iv. 每個對象都有一種類型;
v. 同一類型的所有對象都能夠接收相同的消息;
2. 掌握類的基本組成和使用。
i. 類的聲明;
ii. 類體:成員變數,成員方法,構造函數;
iii. 類的修飾符,變數的修飾符,方法的修飾符;
iv. 類的繼承關系:成員變數的隱藏和成員方法的重寫,this和super關鍵字;
v. Object類;
3. 了解對象的生成、使用和刪除。
i. 對象的創建;
ii. 對象的引用(域選擇運算符「.」);
iii. 對象的刪除(垃圾回收機制);
iv. 類中方法的引用;
4. 了解Java類庫中常用類和介面。
i. 核心包中的System,Math,基礎類型的封裝類等;
ii. 字元串相關類(String,StringBuffer,StringTokenizer等);
iii. 集合相關類(Collection,List,Map等介面及其實現類);
五、Java的高級特性
1. static關鍵字,了解靜態變數,靜態方法和靜態語句初始化;
2. final關鍵字,了解常量,最終方法和最終類;
3. 抽象類(abstract關鍵字),了解抽象方法和抽象類;
4. 了解介面
i. 介面的定義;
ii. 介面的實現與使用;
iii. 介面的繼承;
5. 包與訪問控制
i. 包的聲明和引入;
ii. private,預設,protected,public四種訪問控制修飾符的控制范圍;
六、 Java編程技術基礎(此處要求掌握部分為可以出編程題或者編程填空題的考點);
1. 異常處理
i. 了解異常的概念;
ii. 掌握try,catch,finally語句塊;
iii. 掌握throw,throws異常的拋出;
iv. 了解自定義異常;
2. 線程的要領和使用。
i. 了解多線程的含義
ii. 掌握線程的創建的兩種方式:繼承Thread類和實現Runnable介面
iii. 了解線程的調度(即優先順序控制)和其他的基本控制
iv. 初步了解線程的同步,包括同步方法和同步語句塊;
3. 網路程序設計
i. 了解網路的通信機制
ii. 了解URL的通信機制
iii. 掌握有連接的Socket通信機制,了解無連接的通信機制
4. 輸入/輸出
i. 了解位元組流和字元流;
位元組輸入時:把String轉換成byte類型的使用
String str=「大大的」
Byte b[]=str.getBytes();
把byte類型的轉換成string的使用
New string(b);
ii. 掌握文件和文件的基本操作;
iii. 掌握文件流和緩存流等重要輸入輸出流;
iv. 了解隨機存取文件,RandomAccessFile類的創建和操作;
七、 編寫用戶界面程序
1. 了解AWT的基本原理;
2. AWT的組件,容器,布局管理器等重要概念及其相關類;
i. 掌握所有AWT的基本組件及其相關類,包括按鈕(Button),復選框(CheckBox),下拉框(Choice),標簽(Lable),列表(List),文本區(TextArea),文本域(TextFiled)等
ii. 掌握重要容器:框架(Frame),面板(Panel),對話框(Dialog);
iii. 掌握流式布局管理器(FlowLayout)和邊界布局管理器(BorderLayout),了解網格布局管理器(GridLayout)和卡片布局管理器(CardLayout)
3. 了解AWT的事件處理機制;
i. 事件處理模型中的三類對象:事件(Event)、事件源(Event source)以及時間處理器(Event handler);
ii. 了解監聽器的定義,注冊,以及事件適配器;
iii. 掌握以下重要事件,處理介面以及對應的方法:
1. 激活組件事件:ActionEvent,ActionListener,actionPerformed();
2. 條目狀態改變:ItemEvent,ItemListener,itemStateChanged();
3. 滑鼠單擊事件:MouseEvent,MouseListener,mouseClicked();
4. 窗口關閉事件:WindowEvent,WindowListener,windowClosing();
八、 編寫小應用程序(Applet)
1. 了解Applet的基本概念
i. 掌握Applet的生命周期;
ii. 了解Applet的類層次結構;
iii. 掌握Applet的關鍵方法:init(),start(),stop(),destroy(),paint(Graphics g);
iv. 了解Applet的顯示:paint(),update(),repaint()三個方法;
2. 會編寫Applet小程序和相關運行的HTML頁面;
i. 掌握需要引入的包;
ii. Applet必須繼承自java.applet.Applet類;
iii. 掌握HTML頁面中的<Applet>標記及其重要屬性;
3. 了解Applet的圖形化用戶界面;
③ 關於同一個網頁上的兩個applet互相通信的問題。一個類直接引用另一個類出錯的問題。
你打字打錯了
Receiver類調用的是receiveAnswer()方法
而你在Sender類中的方法是receiverAnswer(),注意多少一個r的區別。
要看用了什麼過時的API,你可以用javac -Xlint:deprecation Receiver.java來看。對於初學者來說,API過不過時其實無所謂的
另外,不要再看Applet了,這東西已是明日黃花,沒有任何應用價值了。估計是你看得教材太老了。
④ java如何調用c語言源文件並進行執行.
Think in java 這本書的附錄有這么一章 使用非JAVA代碼
附錄A 使用非JAVA代碼
JAVA語言及其標准API(應用程序編程介面)應付應用程序的編寫已綽綽有餘。但在某些情況下,還是必須使用非JAVA編碼。例如,我們有時要訪問操作系統的專用特性,與特殊的硬體設備打交道,重復使用現有的非Java介面,或者要使用「對時間敏感」的代碼段,等等。與非Java代碼的溝通要求獲得編譯器和「虛擬機」的專門支持,並需附加的工具將Java代碼映射成非Java代碼(也有一個簡單方法:在第15章的「一個Web應用」小節中,有個例子解釋了如何利用標准輸入輸出同非Java代碼連接)。目前,不同的開發商為我們提供了不同的方案:Java 1.1有「Java固有介面」(Java Native Interface,JNI),網景提出了自己的「Java運行期介面」(Java Runtime Interface)計劃,而微軟提供了J/Direct、「本源介面」(Raw Native Interface,RNI)以及Java/COM集成方案。
各開發商在這個問題上所持的不同態度對程序員是非常不利的。若Java應用必須調用固有方法,則程序員或許要實現固有方法的不同版本——具體由應用程序運行的平台決定。程序員也許實際需要不同版本的Java代碼,以及不同的Java虛擬機。
另一個方案是CORBA(通用對象請求代理結構),這是由OMG(對象管理組,一家非贏利性的公司協會)開發的一種集成技術。CORBA並非任何語言的一部分,只是實現通用通信匯流排及服務的一種規范。利用它可在由不同語言實現的對象之間實現「相互操作」的能力。這種通信匯流排的名字叫作ORB(對象請求代理),是由其他開發商實現的一種產品,但並不屬於Java語言規范的一部分。
本附錄將對JNI,J/DIRECT,RNI,JAVA/COM集成和CORBA進行概述。但不會作更深層次的探討,甚至有時還假定讀者已對相關的概念和技術有了一定程度的認識。但到最後,大家應該能夠自行比較不同的方法,並根據自己要解決的問題挑選出最恰當的一種。
A.1 Java固有介面
JNI是一種包容極廣的編程介面,允許我們從Java應用程序里調用固有方法。它是在Java 1.1里新增的,維持著與Java 1.0的相應特性——「固有方法介面」(NMI)——某種程度的兼容。NMI設計上一些特點使其未獲所有虛擬機的支持。考慮到這個原因,Java語言將來的版本可能不再提供對NMI的支持,這兒也不準備討論它。
目前,JNI只能與用C或C++寫成的固有方法打交道。利用JNI,我們的固有方法可以:
■創建、檢查及更新Java對象(包括數組和字串)
■調用Java方法
■俘獲和丟棄「異常」
■裝載類並獲取類信息
■進行運行期類型檢查
所以,原來在Java中能對類及對象做的幾乎所有事情在固有方法中同樣可以做到。
A.1.1 調用固有方法
我們先從一個簡單的例子開始:一個Java程序調用固有方法,後者再調用Win32的API函數MessageBox(),顯示出一個圖形化的文本框。這個例子稍後也會與J/Direct一志使用。若您的平台不是Win32,只需將包含了下述內容的C頭:
#include <windows.h>
替換成:
#include <stdio.h>
並將對MessageBox()的調用換成調用printf()即可。
第一步是寫出對固有方法及它的自變數進行聲明的Java代碼:
class ShowMsgBox {
public static void main(String [] args) {
ShowMsgBox app = new ShowMsgBox();
app.ShowMessage("Generated with JNI");
}
private native void ShowMessage(String msg);
static {
System.loadLibrary("MsgImpl");
}
}
在固有方法聲明的後面,跟隨有一個static代碼塊,它會調用System.loadLibrary()(可在任何時候調用它,但這樣做更恰當)System.loadLibrary()將一個DLL載入內存,並建立同它的鏈接。DLL必須位於您的系統路徑,或者在包含了Java類文件的目錄中。根據具體的平台,JVM會自動添加適當的文件擴展名。