java SE運行環境在windows下的配置和命令行方式編譯與運行java程序

大家好,這是我csdn的第一篇文章,非常粗淺和入門,拋磚引玉了。本人本科是軟件工程,如今是軟件工程小碩一枚,愛好互聯網行業,喜歡java語言……希望我的一系列文章和分享能給我和廣大網友帶來快樂和價值。因爲一直是科班出身,東西時間長了很容易混淆和忘記,比如一些算法,java的一些語法細節,一些設計模式,彙編,linux等等吧。故想起了csdn開博客的方式來記錄和複習之前的知識,吐槽,技術和藉此機會分享給互聯網這個提供我未來飯碗的行當。

如果有錯誤和垃圾的地方,請大家不吝賜教!thanks!

開始的時候,先來了解下java的平臺無關性,java只有它的安裝過程和編譯命令與操作系統有關係,如果我們安裝環境成功,那麼java的運行和調試等就無需在關注環境,這是系統無關性的一個主要優勢。


一些術語;

JDK; 是整個JAVA的核心,包括JavaRuntime Envirnment,一堆Java工具(javac/java/jdb等)和Java基礎的類庫。

JRE;所有的Java程序都要在JRE下才能運行。包括JVM和JAVA核心類庫和支持文件。與JDK相比,它不包含開發工具——編譯器、調試器和其它工具。這個很好理解,因爲不是每個人都需要編譯器的!

JVM;是JRE的一部分,它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的。JVM有自己完善的硬件架構,如處理器、堆棧、寄存器等,還具有相應的指令系統。JVM的主要工作是解釋自己的指令集(即字節碼)並映射到本地的 CPU 的指令集或 OS 的系統調用。

總的來說範圍;就是jdk > jre > jvm


想掌握甚至精通一門編程語言或者設計思想,除了深入的理論和研究,必須結合實踐,也就是俗稱的敲代碼!那麼首先我們先配置環境,而安裝java開發工具包—jdk是開始就必要的,至於如何下載和安裝,請自行去oracle(已經收購了sun)的官網下載,或者百度隨便搜索下一大把的安裝包。

下圖是jdk的目錄;


注意;windows下的文件路徑不要帶中文!

bin文件夾裏包含編譯器和解釋器等一系列工具,include包含本地方法的文件,jre包含java運行環境文件,lib包含類庫文件,src(本來是壓縮包的src.zip格式),解壓之後是java類庫中公共部分的源代碼(對了,我的jdk版本是jdk1.7.0_45)。

然後設置三個環境變量:JAVA_HOME, PATH 和 CLASSPATH(不區分大小寫);

JAVA_HOME:指向JDK的安裝目錄(也就是我們解壓後的文件夾的目錄)。

PATH:指向JDK安裝目錄下的\bin目錄。

CLASSPATH:指向Java程序的類路徑。


(1)java環境變量的配置,爲了配置環境變量,開始之前先安裝jdk,成功之後對於jdk的bin目錄要添加到path路徑中,爲什麼這樣做呢?

因爲win操作系統在path(已經存在)路徑中搜索本地的可執行文件的目錄列表,當然對於不同的os(操作系統),這個路徑很有可能不同。這樣的話,我們必須要把\jdk1.7.0_45\bin的目錄添加到可執行路徑中去。而bin中有java編譯器和解釋器等工具,所以必須要在可執行目錄中。bin裏的javac.exe用於調用java的編譯器,java.exe用於調用jvm。

記得初學java的時候,我發現只是設置path的話,如果運行一些稍微複雜的代碼(比如需要調用java自帶的類),就會失敗,後來發現就是因爲在程序運行時,會在jdk安裝目錄下的lib文件夾裏尋找需要的java類,因爲jdk的lib目錄下放有Java自己的類庫,你的程序中肯定會用到Java自帶的類。最好是開始的時候就設置,否則後期用起來很麻煩。而JAVA_HOME完全就是爲了方便修改和設置,體現了軟編碼的思想。當然jre裏也有lib文件夾,裏面也存放着java的類。這兩個lib文件夾的區別,有待後來考察。

可以這樣做,我的電腦—>屬性->“高級”->環境變量。


在“系統變量”處添加JAVA_HOME,並將JDK的安裝路徑(本機的)寫到變量值裏面,用同樣的方法創建CLASSPATH環境變量,其中變量值是:" .;%JAVA_HOME%\lib"。%JAVA_HOME% 就是我們上一步中設置的環境變量的值,也就是JDK的安裝目錄。使用分號將兩個路徑隔開。前面的”.”表示當前目錄。這樣設置之後,應用程序會先從當前目錄尋找Java類,如果在當前路徑下沒有找到,則去jdk的lib下尋找。

我們要配的第三個環境變量是PATH(這個纔是最最關鍵的),這個變量已經存在於系統中了,我們只需要在“系統變量“中找到它,然後在後面加上JDK安裝目錄下的\bin目錄,加上:;%JAVA_HOME%\bin  即可。這樣,系統的環境變量就設置好了。測試JDK是否安裝成功,在命令行中輸入java –version查看JDK的版本號,如出現版本信息,說明JDK已經正確的配置好了。


有時候會等數十秒,纔出信息。

(2)安裝源代碼包和文檔等

要想成爲一個合格的碼農,查看api文檔,源代碼等是必修課。java所有公共類庫的源代碼文件在jdk的src.zip包中,。故還需要下載一個文檔壓縮文件;jdk-version-doc.zip,解壓放到jdk目錄下即可。養成查看java源文件和類庫文檔的習慣!即src和docs文件夾。

(3)dos下的常用命令行的使用

win+R調出開始菜單裏的搜索窗口,再cmd調出命令行窗口,學會使用help命令,隨時查看命令的使用方法。

------------------------------------------------------------------------------------------------

C:\Users\Administrator>help
有關某個命令的詳細信息,請鍵入 HELP 命令名
ASSOC          顯示或修改文件擴展名關聯。
ATTRIB         顯示或更改文件屬性。
BREAK          設置或清除擴展式 CTRL+C 檢查。
BCDEDIT        設置啓動數據庫中的屬性以控制啓動加載。
CACLS          顯示或修改文件的訪問控制列表(ACL)。
CALL           從另一個批處理程序調用這一個。
CD             顯示當前目錄的名稱或將其更改。
CHCP           顯示或設置活動代碼頁數。
CHDIR          顯示當前目錄的名稱或將其更改。
CHKDSK         檢查磁盤並顯示狀態報告。
CHKNTFS        顯示或修改啓動時間磁盤檢查。
CLS            清除屏幕。
CMD            打開另一個 Windows 命令解釋程序窗口。
COLOR          設置默認控制檯前景和背景顏色。
COMP           比較兩個或兩套文件的內容。
COMPACT        顯示或更改 NTFS 分區上文件的壓縮。
CONVERT        將 FAT 卷轉換成 NTFS。您不能轉換
               當前驅動器。
COPY           將至少一個文件複製到另一個位置。
DATE           顯示或設置日期。
DEL            刪除至少一個文件。
DIR            顯示一個目錄中的文件和子目錄。
DISKCOMP       比較兩個軟盤的內容。
DISKCOPY       將一個軟盤的內容複製到另一個軟盤。
DISKPART       顯示或配置磁盤分區屬性。
DOSKEY         編輯命令行、調用 Windows 命令並創建宏。
DRIVERQUERY    顯示當前設備驅動程序狀態和屬性。
ECHO           顯示消息,或將命令回顯打開或關上。
ENDLOCAL       結束批文件中環境更改的本地化。
ERASE          刪除一個或多個文件。
EXIT           退出 CMD.EXE 程序(命令解釋程序)。
FC             比較兩個文件或兩個文件集並顯示它們之間的不
FIND           在一個或多個文件中搜索一個文本字符串。
FINDSTR        在多個文件中搜索字符串。
FOR            爲一套文件中的每個文件運行一個指定的命令。
FORMAT         格式化磁盤,以便跟 Windows 使用。
FSUTIL         顯示或配置文件系統的屬性。
FTYPE          顯示或修改用在文件擴展名關聯的文件類型。
GOTO           將 Windows 命令解釋程序指向批處理程序
               中某個帶標籤的行。
GPRESULT       顯示機器或用戶的組策略信息。
GRAFTABL       啓用 Windows 在圖形模式顯示擴展字符集。
HELP           提供 Windows 命令的幫助信息。
ICACLS         顯示、修改、備份或還原文件和
 目錄的 ACL。
IF             在批處理程序中執行有條件的處理過程。
LABEL          創建、更改或刪除磁盤的卷標。
MD             創建一個目錄。
MKDIR          創建一個目錄。
MKLINK         創建符號鏈接和硬鏈接
MODE           配置系統設備。
MORE           逐屏顯示輸出。
MOVE           將一個或多個文件從一個目錄移動到另一個目錄
OPENFILES      顯示遠程用戶爲了文件共享而打開的文件。
PATH           爲可執行文件顯示或設置搜索路徑。
PAUSE          停止批處理文件的處理並顯示信息。
POPD           還原由 PUSHD 保存的當前目錄上一次的值。
PRINT          打印一個文本文件。
PROMPT         改變 Windows 命令提示。
PUSHD          保存當前目錄,然後對其進行更改。
RD             刪除目錄。
RECOVER        從損壞的磁盤中恢復可讀取的信息。
REM            記錄批處理文件或 CONFIG.SYS 中的註釋。
REN            重新命名文件。
RENAME         重新命名文件。
REPLACE        替換文件。
RMDIR          刪除目錄。
ROBOCOPY       複製文件和目錄樹的高級實用程序
SET            顯示、設置或刪除 Windows 環境變量。
SETLOCAL       開始用批文件改變環境的本地化。
SC             顯示或配置服務(後臺處理)。
SCHTASKS       安排命令和程序在一部計算機上按計劃運行。
SHIFT          調整批處理文件中可替換參數的位置。
SHUTDOWN       讓機器在本地或遠程正確關閉。
SORT           將輸入排序。
START          打開單獨視窗運行指定程序或命令。
SUBST          將驅動器號與路徑關聯。
SYSTEMINFO     顯示機器的具體的屬性和配置。
TASKLIST       顯示包括服務的所有當前運行的任務。
TASKKILL       終止正在運行的進程或應用程序。
TIME           顯示或設置系統時間。
TITLE          設置 CMD.EXE 會話的窗口標題。
TREE           以圖形顯示啓動器或路徑的目錄結構。
TYPE           顯示文本文件的內容。
VER            顯示 Windows 的版本。
VERIFY         告訴 Windows 驗證文件是否正確寫入磁盤。
VOL            顯示磁盤卷標和序列號。
XCOPY          複製文件和目錄樹。
WMIC           在交互命令外殼裏顯示 WMI 信息。


有關工具的詳細信息,請參閱聯機幫助中的命令行參考。
cls是清屏的!

--------------------------------------------------------------------------------------------------

重點說下cd方法,


基本就需要這個命令了。別的需要再去臨時help,so easy……


此時是編譯,再打開當前文件,D:\Program Files\Java\jdk1.7.0_45\CoreJavaBook\v1ch02\Welcome查看發現多了一個文件


.class文件,z這裏面存儲的就是java字節碼文件。然後


運行成功了!

整個過程就是;javac是一個java編譯器,把源文件.java文件編譯成了字節碼文件,併發送給了jvm(java virctual machine),由jvm來執行此字節碼文件。

需要注意,javac 運行時需要帶文件的後綴,而java命令不需要。並且注意大小寫!還有一種特別的問題,就是有時候windows會隱藏文件後綴,這時候及其容易出錯,類似出現.java.tet的文件,那樣肯定不行的。還有比如,出現無法找打類的錯誤,是不是classpath路徑被臨時修改了?這時候可以set classpath查看路徑,使用set classpath=,來臨時設置。或者是語法不兼容的問題等等。

對於問題的解決,無他,就是需要多多練習,多多做項目,多多思考,多多涉獵和總結了。

博客轉載請註明出處;http://blog.csdn.net/sharp_allen/article/details/24385333

發佈了26 篇原創文章 · 獲贊 5 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章