XML代碼:
詳情見:
http://blog.csdn.net/flynetcn/archive/2007/04/09/1557413.aspx
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 ]
其中[ 包名 ]為用空格分隔的一系列包的名字,包名不允許使用通配符,如(*)。[ 源文件名 ]為用空格分隔的一系列的源文件名,源文件名可包括路徑和通配符,如(*)。[ @files ]是以任何次序包含包名和源文件的一個或多個文件。
補充說明
Javadoc解析Java源文件中的聲明和文檔注釋,并產生相應的HTML頁缺省),描述公有類、保護類、內部類、接口、構造函數、方法和域。
在實現時,Javadoc要求且依賴于java編譯器完成其工作。Javadoc調用部分javac編譯聲明部分,忽略成員實現。它建立類的內容豐富的 內部表示,包括類層次和“使用”關系,然后從中生成HTML。Javadoc還從源代碼的文檔注釋中獲得用戶提供的文檔。
當Javadoc建立其內部文檔結構時,它將加載所有引用的類。由于這一點,Javadoc必須能查找到所有引用的類,包括引導類、擴展類和用戶類。
命令選項
-overview i>path/filename 指定javadoc應該從path/filename所指定的“源”文件中獲取概述文檔,并將它放到概述頁中(overview- summary.html)。其中path/filename 是相對于-sourcepath的相對路徑名。
-public 只顯示公有類及成員。
-protected 只顯示受保護的和公有的類及成員。這是缺省狀態。
-package 只顯示包、受保護的和公有的類及成員。
-private 顯示所有類和成員。
-help 顯示聯機幫助,它將列出這些javadoc和doclet命令行選項。
-doclet class 指定啟動用于生成文檔的docle 的類文件。該doclet定義了輸出的內容和格式。如果未使用-doclet選項,則javadoc使用標準doclet生成缺省HTML格式。該類必須 包含start(Root)法。該啟動類的路徑由 -docletpath選項定義。
-docletpath classpathlist 指定doclet類文件的路徑,該類文件用-doclet選項指定。如果doclet已位于搜索路徑中,則沒有必要使用該選項。
-1.1 生成具有用Javadoc 1.1生成的文檔的外觀和功能的文檔。也就是說,頁的背景為灰色,用圖像做頁眉,使用bullet列表而不是表格,具有單層目的目錄結構,不包含繼承 API,不使?*** TML框架,并且不支持內部類。該選項還自動將索引分割成每個字母一個文件。如果想要這種外觀,則該選項比javadoc 1.1優越之處等于修正了一些錯誤。
-sourcepath sourcepathlist
當將包名傳遞到 javadoc命令中時,指定定位源文件(.java)的搜索路徑。注意只有當用 javadoc命令指定包名時才能使用sourcepath選項 -- 它將不會查找傳遞到javadoc命令中的.java文件。如果省略-sourcepath,則javadoc使用類路徑查找源文件。
-classpath classpathlist 指定javadoc將在其中查找引用類的路徑 -- 引用類是指帶文檔的類加上它們引用的任何類。Javadoc將搜索指定路徑的所有子目錄。classpathlist可以包括多個路徑,彼此用逗號分隔。
-bootclasspath classpathlist 指定自舉類所在路徑。它們名義上是Java平臺類。這個bootclasspath是Javadoc將用來查找源文件和類文件的搜索路徑的一部分。在 classpathlist中用冒號(:)分隔目錄。
-extdirs dirlist 指定擴展類所在的目錄。它們是任何使用Java擴展機制的類。這個 extdirs是Javadoc將用來查找源文件和在文件的搜索路徑的一部分。在dirlist中用冒號(:)分隔目錄。
-verbose 在javadoc運行時提供更詳細的信息。不使用verbose選項時,將顯示加載源文件、生成文檔(每個源文件一條信息)和排序的信息。verbose選項導致打印額外的信息,指定解析每個java源文件的毫秒數。
-locale language_country_variant 指定javadoc在生成文檔時使用的環境。
-encoding name 指定源文件編碼名,例如EUCJIS/SJIS。如果未指定該選項,則使用平臺缺省轉換器。
-J[flag] 將flag直接傳遞給運行javadoc的運行時系統java。注意在J和flag之間不能有空格。
標準 Doclet 提供的選項
-d directory 指定javadoc保存生成的HTML件的目的目錄。省略該選項將導致把文件保存到當前目錄中。其中directory可以是絕對路徑或相對當前工作目錄的相對路徑。
-use 對每個帶文檔類和包包括一個“用法”頁。該頁描述使用給定類或包的任何 API 的包、類、方法、構造函數和域。對于給定類 C,使用類 C 的任何東西將包括 C 的子類、聲明為 C 的域、返回 C 的方法以及具有 C 類型參數的方法和構造函數。
-version 在生成文檔中包括 @version 文本。缺省地將省略該文本。
-author 在生成文檔中包括 @author 文本。
-splitindex 將索引文件按字母分割成多個文件,每個字母一個文件,再加上一個包含所有以非字母字符開頭的索引項的文件。
-windowtitle[title] 指定放入 HTML
詳情見:
http://www.itpub.net/788049.html
Java有能力抵擋LAMP的進攻嗎?或是LAMP、.Net與Java將三分天下乎?難道昔日“酷斃了”的Java已經成為過時技術了嗎……
隨著互聯網開源潮流的迅速發展,全球IT業正迎來一個新的發展格局成長期。對全球的開源體系——LAMP(Linux、Apache、MYSQL、PHP)而言,其所代表的開源軟件及應用,以其開放性、低成本、安全性、適用性以及可靠性能,正對傳統軟件、硬件和系統集成商產生巨大的沖擊,同時,也給創新型IT企業、程序開發者創造了前所未有的機遇。作為軟件行業風尖浪口的Java,幾多褒貶,幾多稱贊。Java有能力抵擋LAMP的進攻嗎?或是LAMP、.Net與Java將三分天下乎?難道昔日“酷斃了”的Java已經成為過時技術了嗎?
LAMP宣稱,在Linux系統下開發軟件不再需要層的概念了,Java不再是唯一的選擇了。在本文中,筆者將對LAMP和Java這兩種語言進行詳細的比較。比較將涉及到這兩種語言的起源、特點及各自的優劣勢等方面的內容。希望通過這樣的比較,讓讀者了解這兩種語言各自的特點,以便于在自己的項目中,根據實際情況,盡快的看清軟件語言的發展趨勢。
一、引言
1998年,Michael Kunze為德國計算機雜志c't寫了一篇關于Free 軟件如何成為商業軟件替代品的文章時,創建了LAMP這個名詞,Linux 操作系統、Apache網絡服務器、MySQL數據庫和PHP (Perl或Python)腳本語言組合而成的——LAMP (四種技術的開頭字母組成),隨之LAMP技術成為了自由軟件業的一盞真正的明燈。
LAMP 在英語中是“燈”的意思,但是在 IT 行業當然不是那么簡單的一個意思。這個術語在德國十分流行。代表了 Linux 平臺上的 Apache 網站服務器; MySQL 數據庫以及 Perl 、Python 或者 PHP 編程語言的結合。筆者相信,這個術語也會在我們中國的開放源代碼界,乃至整個網絡界開始流行,LAMP 不僅會成為企業上網,政府上網的“明燈”,也應該會在企業內部實施的 Intranet 大有作為。
LAMP開源軟件——包括Linux 操作系統、Apache網絡服務器、MySQL 數據庫和PHP ——正在進軍主流計算市場。
Java與。Net 工具一統商業軟件開發領域已數年,但是具有易于開發、更新速度快、成本低的特點,LAMP被許多開發者視為“黃金組合”,在近幾年中由LAMP集體開源廠家,或者確切的說LAMP開源自由社區吹響向主流計算市場發起進攻的號角。甚至在2005年的TechEd大會上,微軟總裁鮑爾默以“微軟有能力抵擋LAMP的進攻”的用詞,將LAMP列為Windows 和它的。Net 開發軟件的競爭者。IBM、Intel、HP、SUN等眾多廠家提出開源貢獻口號,收購開源公司;Intel、SAP投資PHP公司Zend科技;LAMP的開源和發展潛力可見風頭正盛。
LAMP 所代表的不僅僅是開放源碼,它更是開發和實施高性能 Web 應用的重要平臺。如果說 Apache 能代表 LAMP 的占有率的話,那么,采用 LAMP 的站點幾乎就已經是占據了主要的市場,看看 Netcraft 每月的調查就可以知道 Apache 的流行程度。國外的開放源碼站點,例如 Apacheweek、MySQL.com、Perl.com 等自不必說,現在國內的很多站點也開始撲向 LAMP.
LAMP 無論是性能、質量,還是價格都應該是企業/政府部門上網所必須考慮的平臺,LAMP 更應該是 IT 行業,特別是系統集成商所必須選擇和比較的平臺。
二、Java的反應
人生的經驗告訴我們,任何一種處于支配地們的主流技術,只要它顯露出一點點的進展緩慢時,就有可能出現一種新概念或是技術,來一個落井下石。筆者認為,Java經歷了一場場的良性競爭,并取得了良好的效果。同時,在一些其它領域如高性能的計算機上,Java正在發揮它的優勢,而在某些方面如J2ME,Java正在快速的發展。
Java具有良好的開源社區支持,是如此的靈活。看一看Sourceforge,就會明白,沒有任何一種語言像Java一樣,有如此多的開源組件與軟件可以利用。那么Java沒有LAMP所宣稱的優勢嗎?我們可以一一分析一下。
L——Java可以更加優秀的運行在Linux系統上。A——Java社區的Tomcat是最優秀的應用服務器之一。M——Java有非常高效的MySQL驅動。P——Java支持許多腳本語言,并且正處于快速的發展之中。同時,Java緊密整合與支持LAMP的堆棧。
也許有很多Java的反對者聲稱,Java使用的容易性向來是Java普及的最大障礙。而Java的應變之道不是改變語言本身使它變簡單,因為如果把它變簡單了,它處理高階事務的能力也就被削弱了。Java把重點放在工具的簡單性上。如果用Java Studio Creator,就可以用拖放(drag and drop)來寫成AJAX元件和資料庫存取等內容,訂制網頁也相當快。這樣做的好處是工具把復雜的東西都做掉了,開發人員把應用部署在一個具有錯誤轉移(failover)、遠端管理的集成系統上,然后就無需做一大堆事情,很多事都省掉。
有太多的人說,Java寫某些東西很好,但Web開發方面就沒那么好,反而是其它開發語言及框架則比較強。很多開發人員采用PHP 來制作網頁。PHP這類語言是完全用在Web開發上,如果想產生一個網頁,PHP真的很好用,它簡直就是JSP (Java Serer Page)的雙胞胎。
但是,開發人員不可能只有做網頁而已。一旦開始做大量分析或與其它系統整合,需要涉及到底層的數據分析時,光用PHP之類的東西就很難了,則需要采用Java代碼來完成。通常的情況并不是一種技術替代另外一種技術,而是一種技術補充另外一種技術,發揮相乘相加效果。最常看到的是在網頁上用PHP,在后端資料分析上用的是Java.
Java正在失去發展動力嗎?筆者絕對不能同意Java正在走下坡路的觀點。Java到生命盡頭了嗎?不!Java的火爆才剛剛開始。在大型、復雜的企業級應用領域,Java仍是主流的開發工具,此外,Java在手機平臺上越來越受到歡迎。據悉,目前全球有600多款手機運行Java虛擬機,全球10大手機游戲中有7款是采用Java開發。同時,Java已經成為多數科學研究和計算使用的首選語言。在大學中有越來越多的人在使用Java語言,越來越多的尖端學術研究完全使用Java語言;各個行業的公司都有很多的Java程序員在開發他們的項目。
三、Java不倒的原因
為什么說Java在LAMP、。NET及ROR的圍攻下而能處于不敗呢?筆者主認為主要有以下原因:
首先,其它的語言是特定領域的語言,尤其有些只是Web應
用。而Java的應用范圍更加的寬廣。可以開發桌面程序,手機游戲、DVD播放器及應用服務器等。Java與某些軟件有著天然的內在聯系,如Database,ERP等。
其次,Java有大量的開源社區支持,看看Apache的Portfolio或SourceForge就明白這一點。這是Java發展快速的主要原因之一。采用Java作為平臺而開發的軟件,穩定的運行在各種操作系統上,相對競爭對手其它語言,如C++或C語言,極大的提高了人們的生產力。
第三,Java開發平臺的多樣性。有多種JDK可以供選擇,包括Sun、IBM、Bea及開源的JDK.同時,有大量的應用服務器可供選擇,如開源陣營的JBoss應用服務器、Apache的Geronimo、Sun的Glassfish等等。除此之外,還有大量的商業服務器平臺。
第四,和Java相比,PHP 和Python等腳本語言更容易學習,它們在開發人員當中相當的流行,尤其是那些網頁開發者。很多人,包括一些前Java語言的擁護者都認為,腳本語言和所謂的LAMP開源部件正在蓬勃發展,而這種發展減弱了Java的影響。但是,有一點經常被人遺忘,那就是,Java是一種兩種層面上的語言:它既是一種虛擬機,同時它也是一種ASCII 語言。很多人看不到Java作為虛擬機的神奇之處,因為非常多的腳本語言就是建立在這種虛擬機之上的。
最后,Java會是一種通用型語言及平臺呢,還是專門發展在行動或服務器平臺上的東西呢?這里就存在一些似非而是道理。一方面開發人員得要把東西整合在一起、讓環境可以在很多地方使用力量才會大,對Java來說,這正是它最強的地方之一。另一方面是開發人員也想專注在某一領域上。但如果專注在開發人員的技術上,Java社群最厲害的地方是可以把它用在應用服務器、交易服務器、一種網絡協議、手機應用程序以及工廠自動化的控制程序或是智能型手機上。最后開發人員學到的是可攜式的技能,而不只是一項技術。如果同CIO、CTO談時,就會知道這相當重要。
四、LAMP組合利弊談
LAMP組合正在逐漸獲得市場認可,但是它已經具有追上非開源競爭者的實力嗎?生活中最好的東西真的是免費的嗎?開源支持者們當然原意讓我們相信這一點。多年以來,他們已經將不斷改進的LAMP組合作為構建商業系統并使之運轉的一條免費之路。
但是LAMP組合也有一些潛在的缺點。開源組合和私有軟件的一個明顯區別在于新特性。私有軟件提供商的發展依賴于增長率,也就是說需要不斷增加銷售額。這就使得他們要不斷開發新品。另一方面,開源開發沒有這樣的環境,就是說創新的步伐經常要慢許多。你很少看到走在前沿的創新是開源產品。例如,在微軟在SQL Server中開發XML作為一個本地數據類型的時候,開源MySQL數據庫才剛剛將存儲程序作為一個新‘特性,這比它的競爭對手落后了好幾代。
同時擴展可能是對LAMP用戶的一個挑戰。使用集群計算機或刀片服務器和諸如Red Hat Linux這樣的企業級系統擴展到LAMP系統是可能的,但是這并不容易。
在許多公司,LAMP仍然沒有得到正式認可。但是在開源開發模式中,人人都可以做出貢獻,這將推動LAMP比Java或。Net 更快的前進。不過,LAMP也不可能把現有的Java和。Net兩大陣營消滅,因為大的公司客戶都不會只采用一套軟件。
應用促進開源發展,理念走向務實應用。與歐美相比,國內的LAMP架構在企業關鍵應用中的應用還有待提高。目前我國LAMP應用存在的問題:國內開源數據庫的應用已經開始起步了,但是開發還沒有和開源技術掛鉤。LAMP要發展,能否做出商業軟件是關鍵。
LAMP的商業化過程存在嚴重的問題。例如,PHP的產品給人留下的似乎就是,技術很好,但是客戶體驗服務沒跟上,包括安裝提示,升級以及Bug反饋等等服務都很粗糙,客戶寧愿去選中商業化更濃的Java 或。Net.
五、結論
毫無疑問的是,LAMP組合擁有其自身的價值,但是要小心地使用它。它是為新興商業系統和概念業務系統的可行性尋找證據的優秀工具,但是它也需要適當的關心和關注以變得更加高效。
在企業級開發,Java毫無疑問是完全占據優勢的。Dyanimics 和Groovy 是Java 可以較大提升的一個地方,這使得Java更加動態,更適應小型應用。而EJB這些,就更不用說了,LAMP和。Net,基本上是不適用了。PHP很受歡迎,只是證明了PHP在很多簡單應用上,開發者上手比較快而已。最關鍵的是,PHP和JAVA也不是一個層面比較的東西,如果要比較,那么就是MODE-1的JSP和PHP比較。特別是O/R、 AOP、MVC、 Patterns、XML config files、Tag libraries 等,在PHP中要實現還是要很長一段時間。
套用一句俗話“只要努力,就會更好”。Java有潛力成為從PDA到服務器任何領域都非常成功的平臺。Java可以繼續在其占優勢的服務器端發展下去。還可以通過優化客戶端程序的發布及安裝使Java在客戶端開發方面一樣獲得成功。不管現在的情況如何,筆者相信Java有能力成為一個完美的平臺。通過不斷的完善,降低開發人員入門的難度,提供對所有的平臺和操作系統的支持,以及提供對更多語言的支持,Java平臺將可以適應任何層次任何領域的開發。通過對客戶端平臺的優化Java在PC和移動設備領域中也會獲得巨大的成功。
詳情見:
import java.sql.*;
public class DBconn
{
String DBDriver = "org.gjt.mm.mysql.Driver";
String ConnStr = "jdbc:mysql://localhost/db";
String MyUser = "root";
String MyPassword = "";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
public DBconn()
{
?? try
?? {
??? Class.forName(DBDriver);
?? } catch (java.lang.ClassNotFoundException e)
?? {
??? System.err.println("DBconn (): " + e.getMessage());
?? }
}
public ResultSet executeQuery(String sql)
{
?? rs = null;
?? try
?? {
??? conn = DriverManager.getConnection(ConnStr, MyUser, MyPassword);
??? Statement stmt = conn.createStatement(
????? java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
????? java.sql.ResultSet.CONCUR_READ_ONLY);
??? rs = stmt.executeQuery(sql);
?? } catch (SQLException ex)
?? {
??? System.err.println("aq.executeQuery:" + ex.getMessage());
?? }
?? return rs;
}
public void executeUpdate(String sql)
{
?? {
??? try
??? {
???? conn = DriverManager.getConnection(ConnStr, MyUser, MyPassword);
???? Statement stmt = conn.createStatement();
???? stmt.executeQuery(sql);
???? stmt.close();
???? conn.close();
??? } catch (SQLException ex)
??? {
???? System.err.println("aq.executeQuery:" + ex.getMessage());
??? }
?? }
}
public boolean closeConn()
{
?? try
?? {
??? if (rs != null)
???? rs.close();
??? if (stmt != null)
???? stmt.close();
??? if (conn != null)
???? conn.close();
??? return true;
?? } catch (SQLException ex)
?? {
??? System.err.println("closeConn:" + ex.getMessage());
??? return false;
?? }
}
}
進入MySQL終端后,輸入命令\s即可,如下:
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>mysql -uroot -p
Enter password: ****
Welcome to the MySQL monitor.?? Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.45-community-nt MySQL Community Edition (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> \s
--------------
mysql?? Ver 14.12 Distrib 5.0.45, for Win32 (ia32)
Connection id:?????????? 1
Current database:
Current user:???????????root@localhost
SSL:???????????????????? Not in use
Using delimiter:???????? ;
Server version:????????? 5.0.45-community-nt MySQL Community Edition (GPL)
Protocol version:??????? 10
Connection:????????????? localhost via TCP/IP
Server characterset:???? latin1
Db????? characterset:???? latin1
Client characterset:???? latin1
Conn.?? characterset:???? latin1
TCP port:??????????????? 3306
Uptime:????????????????? 1 hour 9 min 3 sec
Threads: 1?? Questions: 4?? Slow queries: 0?? Opens: 12?? Flush tables: 1?? Open tabl
es: 0?? Queries per second avg: 0.001
--------------
mysql>
三、最新Windows XP注冊表實用配置技巧 1.屏蔽當鼠標移動到標準控制按鈕的提示信息 當你將鼠標移動到一個標準窗口上的三個控制按鈕(最小化、最大化、關閉)上時,它將顯示每一項的文本提示。通過注冊表可以屏蔽這個功能。打開注冊表子鍵:HKEY_CURRENT_USER\Control panel\Desktop\,創建一個新的鍵值項或者修改已經存在的鍵值項“MinMaxclose”(字符串型),并設置其值:0表示屏蔽此功能;1表示激活此功能。 2.通過注冊表查看系統BIOS信息 在注冊表里儲存著關于系統主板BIOS的有關信息,包括最終日期、版本號和視頻BIOS日期等信息。打開注冊表子鍵:HKEY_LOCAL_MACHINE\Hardware\Description\System,其下面的鍵值項:Systembiosdate、Systembiosversion、Videobiosdate分別記錄著這些BIOS信息。 3.啟動自動最優化磁盤功能 在Windows XP系統中,需要時可以自動初始優化磁盤系統的新功能。在注冊表中可以控制此功能是否有效。打開注冊表子鍵:HKEY_LOCAL_MACHINE\Software\Microsoft\Dfry\Bootoptimizefunction,新建字符串型鍵值項“Enable”,并設置其值:“Y”為此功能有效,“N”反之。 4.限制自動登錄的數量 這個設置可以限制自動登錄的次數,一旦限制已經到了額定次數,自動登錄功能就會拒絕登錄系統。打開注冊表子鍵:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows Nt\CurrentVersion\Winlogon,創建一個新的字符串型或者修改現有的“autologoncount”鍵值項,并且根據需要設置其值的大小。 注意:每次系統重新啟動,autologoncount的值將被消耗一個,直到為零。當值為零時,將沒有賬戶可以自動登錄,autologoncount和默認密碼鍵值將從注冊表中刪除且autoadminlogon將被設置為零。 5.使用Windows NT/2000的登錄界面登錄Windows XP Windows XP采用了一個全新的登錄界面,全新的登錄方法和顯示用戶的圖片信息,讓整個過程更加舒心、個性化。然而在某些場合,可能還會用到Windows NT/2000登錄界面,可以通過一些組合鍵來實現此功能: (1)同時按下Ctrl+Alt鍵。 (2)連續按下Del鍵兩次。 登錄界面將變成Windows NT/2000式的界面,此時,你可以通過點擊“取消”按鈕來切換到Windows XP界面。 6.定義Windows XP時鐘服務器 Windows XP有一個新的特色,它可以將系統的時鐘與Internet上的時鐘服務器進行同步校正,用以下方法你可以修改或添加默認的時鐘服務器。打開注冊表子鍵HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\DateTime\Servers,設置此子鍵的默認值為服務器的IP地址或者域名即可。 7.鎖定/解除任務欄在桌面上的位置 打開注冊表子鍵:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,新建或者修改雙字節值項“TaskbarSizeMove”,并設置其鍵值:0為鎖定;1則為解開鎖定。修改完成后,注消或重新啟動使其生效。 8.改進核心存取系統性能 在具有大量RAM存儲量的系統中,這個技巧可以強迫Windows核心進程被駐留在存儲器里而不是在程序和磁盤交換文件之間來回切換,從而大大提高系統運行效率。打開注冊表子鍵:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management,在其下新建一個雙字節值項:Disablepagingexecutive,并設置其值:1使此功能被激活并且阻止核心進程進行磁盤頁面交換;0則設其為默認值。重新啟動計算機使設置生效。 9.優化I/O緩沖大小的默認設置 此功能可用于改變Windows XP對于I/O緩沖大小的默認設置。打開注冊表子鍵HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management,新建或者編輯雙字節值項“IoPageLockLimit”,并設置其值,其值有二進制和十六進制,單位為Beyte。在設置緩沖大小時,請逐漸增大數值,在增大的過程中觀察設置的性能,因為盲目的增大也會浪費系統資源。 10.屏蔽/打開“分組相似任務欄按鈕”功能 此功能用于是否將相似的窗口條目集合在一起或作為單個按鈕顯示在任務欄上。打開注冊表子鍵:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,新建或者編輯雙字節值項“TaskbarGlomming”,并設置其值:0為屏蔽此功能;1為運行此功能。 11.自定義激活“分組相似任務欄按鈕”的窗口數量 在注冊表里,可以設置當某個窗口達到一定數量后,才激活“分組相似任務欄按鈕”的功能,打開注冊表子鍵:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,新建或者編輯雙字節值項“TaskbarGroupSize”,并設置其值為欲設的窗口數量,一般可為2~10左右。 12.設置當IE 6.0發生錯誤時是否允許錯誤報告 設置是否允許錯誤報告,主要用于報告IE 6.0出現錯誤時將錯誤信息收集并通過Internet發送到微軟技術部門,通過下面的方法可以屏蔽此功能。打開注冊表子鍵:HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main,新建或者編輯雙字節值項“IEWatsonDisabled”,并設置其值為:0表示允許出現錯誤時報告;1表示不報告。 13.讓IE使用多線程下載網頁 現在很流行Netants、FlashGet等多線程下載工具,其實IE也可以使用多線程下載網頁,這樣在設置適當的情況下,可以加快網頁下載速度。打開注冊表子鍵:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings,新建雙字節值項“MaxConnectionsPerServer”,此項的作用是決定最大同步下載的連線數目,一般5~8個連線數目比較好。另外,對于HTTP 1.0服務器,可以加入名為“MaxConnectionsPer1_0Server”的雙字節值項,其值也是設置最大同步下載的數目。 14.設置Windows XP的DOS文件名風格 此設置用于控制是否允許在NTFS分區上使用DOS的8.3式的文件,禁止這項功能,將使NTFS分區的性能更高。打開注冊表子鍵:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,新建或者編輯雙字節值項“NtfsDisable8dot3NameCreation”,并設置其值:0表示不允許;1表示允許。 注意:對于一些十六位的安裝程序將會自動使這項功能打開。 15.屏蔽/打開菜單陰影效果 Windows XP的陰影菜單效果確實更加個性化、絢麗,但對于系統性能較低的機器,此功能將消耗系統資源,通過注冊表可以屏蔽/打開此功能。打開注冊表子鍵:HKEY_CURRENT_USER\Control Panel\Desktop,新建或者編輯已有二進制類型鍵值項“UserPreferencesMask”,設置其值為:將第二個二位改為“28”表示滾動效果表示屏蔽;改為“3E”打開陰影效果。重新啟動計算機后可看到效果。 16.打開無須登陸系統功能 此功能用于控制對于便攜電腦的用戶即便在沒有登錄時,也有可以使用電腦。打開注冊表子鍵:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System,新建或者編輯已有雙字節值項“UndockWithoutLogon”,并設置其值為:0表示不允許有此功能;1表示允許此功能。 17.設置“尚未閱讀信息”的最大期限 Windows XP新功能包括在登錄時顯示幾天內尚未閱讀的新信息,我們可以注冊表里設置此最大期限。打開注冊表子鍵,如果僅僅應用于當前用戶,則打開“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\UnreadMail”子鍵,如果應用于所有用戶則打開“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\UnreadMail”子鍵,新建或者編輯已有雙字節值項“MessageExpiryDays”,并設置其值為具體的天數。 18.隱藏/顯示桌面圖標 新的Windows XP外觀更加個性化,桌面似乎也變得更加簡潔,剛剛安裝的系統桌面上,僅僅只有一個“回收站”圖標,多少有點不方便,其實默認情況下其他常用的圖標(如我的電腦、網上鄰居等)都被設置為隱藏,我們可以通過注冊表可以設置他們是否隱藏/顯示。打開注冊表子鍵:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel,新建下面所列對應的任何一個雙字節值項: IE圖標:{20D04FE0-3AEA-1069-A2D8-08002B30309D} 回收站圖標:{871C5380-42A0-1069-A2EA-08002B30309D} 網上鄰居圖標:{208D2C60-3AEA-1069-A2D7-08002B30309D} 我的文檔圖標:{450D8FBA-AD25-11D0-98A8-0800361B1103} 我的電腦圖標:{645FF040-5081-101B-9F08-00AA002F954E} 并設置其值為:1為隱藏相應圖標;0為顯示相應圖標。 19.顯示/隱藏公共對話框中的“后退”按鈕 Windows XP中可以調用功能更加強大、界面更加友好的新的公共對話框函數(comdlg32.dll),新的對話框中包含了“后退”這一方便的功能按鈕,但如果想隱藏它,也可以通過注冊表來設置。打開注冊表子鍵:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\comdlg32,新建或者編輯已有雙字節值項“ NoBackButton”,并設置其值為:1為隱藏;0為顯示。 20.顯示/隱藏公共對話框中的“查找范圍快速定位區” 如上面說到的一樣,Windows XP公共對話框中的“查找范圍”快速定位區也是可以隱藏/顯示的。打開注冊表子鍵:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\comdlg32,新建或者編輯已有雙字節值項“ NoPlacesBar”,并設置其值為:1為隱藏;0為顯示。 21.防止應用程序窗口失去焦點 如果當前的窗口被另一個自動運行的程序窗口覆蓋,即失去焦點,在以往的Windows操作系統中,特別是Windows 2000中,常常因為窗口失去焦點,致使窗口無法正常被控制。Windows XP中增加了對窗口焦點的操作功能,具體可在注冊表中設置。打開注冊表子鍵:HKEY_CURRENT_USER\Control Panel\Desktop,新建或者編輯已有雙字節值項“ForegroundLockTimeout”,并設置其值:如果是0,則屏蔽鎖定當前窗口焦點功能;如果是具體的數字(單位為毫秒),則在等待設定的時間后自動釋放被鎖定的焦點。 然后在上面的子鍵下新建或者編輯已有雙字節值項“ForegroundFlashCount”,并設置其值:如果是0,則閃爍任務欄中的窗口直到單擊后才停;如果是具體的數字,則當閃爍指定的次數后自動釋放被鎖定的焦點。 22.激活磁盤DMA66模式 激活磁盤系統DMA功能可以節省更多的CPU資源對磁盤進行操作,通過注冊表可以控制系統是否打開此功能。打開注冊表子鍵:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\0000,新建或者編輯已有雙字節值項“EnableUDMA66”,并設置其值:0表示取消此功能;1表示激活此功能。 23.鎖定IE的下載功能 打開注冊表子鍵:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Internet Settings\Zones\3,新建或者編輯已有雙字節值項“1803”,并設置其值:3表示鎖定;0表示不鎖定。24.禁止使用“LAST KNOW GOOD”(最后一次成功引導) “LAST KNOW GOOD”(最后一次成功引導)可以在系統癱瘓時恢復到上一次運行正常時的狀態,如果出于需要而屏蔽此功能,可以使用注冊表來設置。打開注冊表子鍵:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT,新建或編輯已有子鍵“ReportBootOk”,并設置其值:1為啟用此功能;0為屏蔽此功能。 25.控制發生錯誤時是否彈出警告窗口 默認情況下,當應用程序發生嚴重錯誤被關閉時會彈出警告窗口,并可以看到一些程序錯誤信息,如果不想看到此警告彈出窗口,可以在注冊表里設置。打開注冊表子鍵:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows,新建或者編輯已有雙字節值項“ErrorMode”,并可設置鍵值為:0,所有錯誤都彈出顯示“默認”;1,系統錯誤不顯示,應用程序錯誤顯示;2,系統和應用程序同時發生錯誤則彈出顯示。 26.控制當系統崩潰時是否記錄日制 打開注冊表子鍵:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\CrashControl,新建或者編輯已有雙字節值項“LogEvent”,并設置其值為:0為不記錄;1為記錄。 27.定制Regedit的收藏夾 Windows XP新版的Regedit增加了“收藏”功能,但卻沒有管理收藏功能,你只能創建、刪除收藏,而不能修改以及備份這些內容。 Regedit的“收藏”信息保存在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Favorites子鍵下,鍵值項的名稱就是顯示在Regedit“收藏夾”里的條目,而鍵值則是該條目指向的注冊表子鍵路徑(比如“我的電腦\HKEY_CURRENT_USER\Software\Microsoft\Windows”)。可根據自己的需求添加、刪除、編輯修改這些項目。 28.啟用“自動完成”功能 自動完成是Internet Explorer的一個體貼功能。此功能的妙處在于,當你輸入以前曾經輸入過的地址時,它會自動完成輸入,省去了反復輸入的麻煩,而特別是在地址很長的時候,更能體現它的體貼入微。 Windows XP的一些命令輸入窗口提供了類似的提示功能,就是在你輸入以前曾經輸入的內容時,它將其列出以備你選擇使用,但并不自動填充完成輸入。很明顯這一功能比“自動完成”還差那么一點人性化的體貼。打開HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoComplete子鍵,如果該子鍵下沒有“Append Completion”鍵值項,那么新建此鍵值項(字符串型),并賦值為“YES”,自動完成功能便啟用了。 29.自定義磁盤圖標和卷標 通過在磁盤根目錄下創建并設置Autorun.inf,可以更改此磁盤的圖標,其實,通過注冊表的設置,同樣可以達到效果,并且還可以自定義磁盤的卷標。打開注冊表子鍵:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons(如果沒有DriveIcons子鍵,請新建),在該子鍵下新建一個與欲修改磁盤盤符相同名稱的子鍵(比如欲修改C盤,那么新建一個以C為名的子鍵),然后在其下新建一個用來設置磁盤圖標的“DefaultIcon”子鍵,并設置其默然值為圖標文件的路徑,比如C:\Windows\Welcome.exe或者其他圖標文件。 用上面一樣的方法,再新建一個用來設置卷標的“DefaultLable”(即…C\DefaultLable),子鍵,并設置其默然值為欲設的卷標文字,比如My Drive或其他文字。 以上操作完成后,重新啟動或者打開資源管理器并按F5刷新,使修改生效。 30.為CD-ROM和磁盤驅動器建立高級安全機制 為CD-ROM和磁盤驅動器及其可移動介質建立高級安全機制,可以只被當前登錄的用戶訪問。具體可以按照如下步驟進行修改。打開注冊表子鍵:HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon,新建或者編輯已有字符串類型鍵值項AllocateCDRoms,并設置其值為:1,可以使CD-ROM達到此功能;0,屏蔽此功能。 另外在該子鍵下還有鍵值項AllocateFloppies,可以使磁盤驅動器達到此效果,具體設置值與上面一樣。 31.確定上次登錄時用戶使用的域 要控制用來確定成功登錄到當前系統上一個用戶所用域名的注冊表項,可以按照如下步驟進行操作。打開注冊表子鍵:HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon,新建或修改已有字符串類型鍵值項“DefaultDomainName”,其鍵值包含上一次成功登錄時用戶所用的域名。 32.Windows XP登錄口令過期警告 要設置用來確定當用戶登錄且用戶的口令已過期時是否顯示警告對話框的注冊表項,可以打開注冊表子鍵:HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon,新建或者修改已有字符串值項“PasswordExpiryWarning”,設置其值為在用戶使用即將過期的口令進行登錄時顯示警告對話框所需的值。 33.防止用戶配置文件選擇對話框超時 要設置在連接遠程服務器有一段延遲的情況下,決定用戶可以有多少時間確定使用本地配置文件還是服務器配置文件的注冊表項,可以打開注冊表子鍵:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon,新建或者編輯已有字符串值項“ProfileDlgTimeOut”,并設置其值為當連接遠程服務器遇到延遲時,允許用戶在決定使用本地配置文件還是服務器配置文件時花費的時間(毫秒)。 34.使用定制的Shell(外殼程序) 要設置用來指定作為Windows XP缺省Shell執行的程序的名稱和路徑的注冊表項,可以打開注冊表子鍵:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon,新建或者編輯已有字符串型鍵值項“Shell”,并設置其值改為想要使用的定制的Shell程序路徑和程序文件名。 35.通過性能庫防止可擴充計數器超時 你可能會遇到一個關于系統性能監視器的常見問題是圖形或圖表沒有顯示數據,而你知道一個進程正在執行。這是由于幾個原因造成,但是最常見的原因是用來跟蹤信息的可擴充計數器超時,導致進程啟動延遲。你可以通過如下所示的方法修改注冊表來更正這個問題,打開注冊表子鍵:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Perflib,新建或編輯已有雙字節值項“OpenProcedureWaitTime”,并設置其值:缺省值是5000ms(毫秒),即5秒,將這個數值增加到一個合理的數值,并再次試用系統性能監視器直到獲取有效數據為止。 36.當資源管理器崩潰時強迫計算機重新啟動 如果操作系統發生故障,Windows XP就會自動重新啟動。但是如果資源管理器崩潰(桌面無法顯示圖標或任務欄),那么你可能就必須使用鍵盤快捷鍵來注銷,并重新啟動資源管理器。要避免出現這種情況,可以打開注冊表子鍵:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon,新建或編輯已有雙字節值項“AutoRestartShell”,并設置其值為:1為允許在資源管理器崩潰時自動重啟;0為強迫手工注銷并重啟。然后重新啟動計算機,下次資源管理器崩潰時,計算機就會自動重啟動,而不必先注銷再登錄。 37.禁用Windows XP的文件高速緩存 一個與服務相關的注冊表操作是增加信箱的可用緩存以防止丟失信件,認識到這樣做可能會對性能造成影響是很重要的,只有當一個很明顯的涉及信件丟失的問題無法用其他方法解決時才能這樣做,要做到這一點,可以打開注冊表子鍵:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanWorkstation\Parameters,新建或者編輯已有雙字節值項“UtilizeNtCaching”,并設置其值為:1為啟用緩存;0,則禁止緩存。 38.設置系統臨界線程的總數 打開注冊表子鍵:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanWorkstation\Parameters,新建或者編輯已有雙字節值項“CriticalThreads”,并設置其值為一個自己欲修改的值,增加系統可用的臨界線程數。