本文大綱 html
1、開篇 java
2、JDK下載 windows
3、JDK安裝 服務器
4、環境配置 oracle
5、初識Java編譯 工具
6、Java與Javac 學習
7、第一個Java程序 開發工具
8、總結 編碼
9、參考資料 spa
1、開篇
經過對以前Java之路的瞭解以後,相信初學者們都對Java有了一個比較深印象的瞭解了。可是事情不能總停留在理論層面,還得多多實現,才能見真知。我以爲,學習同樣東西,要遵循理論——實踐——理論這樣一個套路。先了解事情的基本概念,弄懂基本概念後,要千方百計的用到生活的點點滴滴上,這樣能加深理論的記憶以及發現本身的盲點。在重複的實踐中,咱們會逐漸對其有了本身的見解、想法,對理論有了必定的深化。最後迴歸理論,總結出本身的東西,這樣東西就真正的屬於你了。因此,今天咱們要開始動手配Java環境,以及利用配好的Java環境來對程序進行編譯運行。要注意的是,爲了能讓你們能更深入的瞭解Java到底是怎麼樣運做,怎樣編譯運行的,本章不會涉及到任何IDE的使用,編碼固然就是用記事本了。IDE對提升平常的開發效率,可是記事本能增長你們應聘的錄取機會喲!
2、JDK下載
在《Java之路——Java初接觸》中已經講過,要進行Java開發,除了JRE(Java運行環境)之外,還須要相應的開發工具,因此咱們須要下載JDK。下載JDK能夠到Oracle官網:https://www.oracle.com/ 上,選擇Downloads——Java for Developers,以下:
接着選擇download JDK,目前可選擇的最新版爲8u121。
若是要想獲取之前的版本,可將頁面拉到最下面,選擇Java Archive,就能夠獲取到歷史的Java版本。
咱們這裏如下載最新的8u121爲例來進行後續說明。
3、JDK安裝
根據系統環境下載了對應的版本以後,就能夠進行安裝了。整個安裝過程沒有什麼特別,基本能夠默認下一步就好了。若是須要,能夠修改一下相應的目錄。
中途會彈出一個對話框,意思是JRE所安裝的目錄,選擇好目錄而後"下一步"就行。
安裝成功後,若是想看API文檔之類的,能夠點擊它的"後續教程"。
至此,JDK已順利安裝完成。
4、環境配置
安裝成功後,怎麼用呢?咱們能夠打開命令控制檯,而後去到你安裝JDK目錄的bin目錄下,執行java命令,若是有一大堆提示出來,證實你已經安裝正確了。
有的同窗可能會遇到下面這種狀況:
爲何會這樣子呢?細心的同窗可能會發現,當前目錄不同。我一開始就說了,咱們須要在你安裝JDK目錄的bin目錄下執行java命令,才能生效。緣由很簡單,就是由於bin目錄下有各類各樣的命令,java是其中一個命令。咱們用到的不少關於java的命令,如javac、javaw等,都是在其bin目錄下,因此你們之後深刻學習,能夠先對bin目錄下的工具進行學習,裏面有不少頗有用的工具,這是後話。
回答剛剛的話題,若是必定要在bin目錄下才能運行java命令是很不方便的一件事,不但不方便,不少其餘程序要用到java命令也用不上,由於他們不知道去哪裏找java命令。這個時候,咱們就須要對系統配置環境變量,以方便在什麼目錄下都能執行java命令。
選擇"開始"——右鍵"計算機"——屬性——高級系統設置——環境變量,便可打開環境變量的設置窗口。
主要對如下三個變量進行設置:
當配置完這三點,咱們再在用戶的目錄下運行java -version命令,就能看到cmd能自動找到java程序而且運行了。
5、初識Java編譯
在開發咱們的第一個Java程序以前,首先粗略的瞭解一下Java代碼的編譯和執行的整個過程。咱們常常會看到Java工程裏面有這兩種後綴的文件:.java和.class。這兩種文件分別表明Java的源代碼和字節碼文件,而其中的字節碼文件就是java實現"Write Once,Run Anywhere"的關鍵。咱們能夠先來看看下面兩幅圖[1]。
Java編譯器編譯Java代碼的流程以下:
JVM執行引擎完成Java字節碼的執行:
從上兩圖能夠看到,Java運行程序分兩步走,第一步是源碼編譯成字節碼,第二步是字節碼編譯成目標代碼。這就和C、C++直接編譯成與機器相關的目標代碼不同了。經過字節碼這一中間環節,你們能夠拿着編譯成功的包發佈到任一有JVM環境的機器上,再由JVM來實現到機器相關的最終目標代碼的編譯,從而作到"Write Once,Run Anywhere",而無需與具體運行平臺綁定。因此咱們一般所說的對代碼進行編譯,就是Java源代碼編譯成JVM字節碼的過程。
6、java與javac
在上一節咱們已經說過,%JAVA_HOME%\bin目錄下有大量的Java工具可使用,咱們之後也要逐漸熟悉。那做爲初接觸java的咱們,首先應該熟悉哪一個呢?無疑是java與javac了。
如今的社會節奏太快了,不少人都或多或少有點急功近利。在開發方便,這主要體如今沒理解程序的底層是怎麼運做的,一上來就開始IDE開發,遇到各類問題後,因爲不懂底層原理,就不知道如何處理。我的認爲,IDE要用,能夠極大的提升咱們的生產效率,可是底層原理也必定要懂,否則都不知道IDE是怎麼講你的程序編譯打包運行的,遇到問題的時候就不會解決了。很常常見到的一種狀況是,有些人看到服務器上沒有IDE就懵了,連怎麼運行jar包程序都不會。
迴歸正傳,咱們就從java與javac入手,瞭解怎麼在命令行中編譯和運行一個java程序。首先,咱們分別認識這兩個命令是怎麼用的。
java命令:
做用:用於執行類或者執行jar文件。
在cmd控制檯中輸入java回車,咱們能夠獲得java命令運行的格式以下:
上圖沒有截完整,選項(-options)後面還有的,你們可自行運行java命令來看。咱們暫時忽略選項(-option)的內容,主要看必填項"類"和"jar文件"。能夠看到java命令可直接運行類和jar文件。舉個例子,如何有個HelloWorld.class文件裏面有個HelloWorld類,則運行的命令是:java HelloWorld。這裏要注意的是,java後面不是class文件(HelloWorld.class),而是對應的類(HelloWorld)。若是有個HelloWorld.jar的jar文件,運行的命令是:java -jar HelloWorld.jar。
javac命令:
做用:用於編譯.java文件。
在cmd控制檯中輸入javac回車,咱們能夠獲得javac命令運行的格式以下:
咱們暫時忽略選項(-option)的內容,能夠看到javac最簡單的格式就是跟一個源代碼文件。舉個例子,若是有一個HelloWorld.java文件須要對其編譯,則運行的命令爲:javac HelloWorld.java,就能夠在當前目錄下生成一個HelloWorld.class的字節碼文件。
7、第一個Java程序
瞭解完java和javac命令之後,咱們就能夠開始第一個Java程序了,固然,咱們是用記事原本開始咱們的第一個Java程序。微軟自帶的記事本功能比較少,用戶體驗也不是十分好,我的比較喜歡用Notepad++,你們可根據本身的習慣來選擇喜歡的記事本。
第一部分:
建立HelloWorld類,保存在HelloWorld.java文件中。
在cmd控制檯中,運行javac HelloWorld.java命令對其編譯,則會自動生成HelloWorld.class文件。
而後運行java HelloWorld命令,則會顯示Hello World。這裏必定要注意,不是運行java HelloWorld.class,java後面跟的是要運行的類,即HelloWorld。
這就完成了從代碼編寫,到編譯,再到運行的整個過程了,是否是很簡單呢?其實一切複雜的事情都是從簡單作起,只要打好了基礎,學習上層的東西就很簡單了。
第二部分:
有人會問了,那若是要引用其餘的jar包或者類的話,那怎麼辦呢?別急,咱們嘗試一下。首先建個User類(只是隨便建個類,你們別太在乎),它有個說出內容的方法,存在User.java文件中,代碼以下:
修改HelloWorld類,代碼以下:
User.java放在otherclass目錄睇下,不在HelloWorld.java同一個目錄:
而後咱們嘗試用上面的方法進行編譯,會發現提示找不到User類,這就是由於javac不知道去哪裏找User類的緣故了。
遇到這些狀況,咱們必定要會看幫助提示,看看javac能夠提供什麼參數。這不僅僅爲了解決目前的問題,還爲了之後解決各類各樣更多的問題,只要能作到觸類旁通,沒有什麼問題能可貴到你。
咱們能夠看到,只要增長-classpath參數,就可指定要查找的類的文件位置,這樣咱們就能夠給javac指定User的位置了,因此咱們能夠寫成:
則會成功編譯HelloWorld.java和User.java,在對應目錄中生成HelloWorld.class和User.class。
這時候咱們能夠執行java HelloWorld看看可否出結果,但惋惜的是,又說沒找到User類:
聰明的同窗可能會想到,java應該也有個-classpath參數。恭喜你,開始開竅了,那咱們趕忙試試看:
又不行,崩潰中!!呵呵,別急,java跟javac有點不一樣,java帶着-classpath參數會是java只會在classpath所在的目錄裏找類,因此若是HelloWorld實在當前目錄下,要把當前目錄加上,也就是加一".",以下:
這就成功運行了。
第三部分:
這時候,有些人又不爽了,爲何每次編譯運行都要執行這麼一大串東西,那多麻煩,若是類多起來,那豈不是輸個命令都要輸半天,有沒有一些方便一點的方法,供之後執行用呢?那固然有,這就是將全部類打包成一個可執行的jar包,之後直接運行jar包就能夠了。這裏用到的命令是jar命令,咱們先看看它的格式與內容:
這裏咱們主要用到的是如下四個選項:
-c 建立新的歸檔文件
-v 在標準輸出中生成詳細輸出
-f 指定歸檔文件名
-e 爲捆綁到可執行 jar 文件的獨立應用程序
指定應用程序入口點
這裏咱們根據提示的格式,用如下命令將User.class和HelloWorld.class打包成HelloWorld.jar包。
這就生成了一個HelloWorld.jar的文件。若是你們想看HelloWorld.jar裏面有什麼內容,告訴你們一個小技巧,能夠將jar包拖到winrar等壓縮軟件中,就能夠看到具體的內容。
能夠看到裏面除了要打包的內容外,還多了一個META-INF文件夾,裏面有一個MANIFEST.MF文件,這是一個清單文件,裏面有相關的清單信息。咱們須要對其進行編輯,增長Class-Path:參數,就如告訴java命令classpath是什麼同樣。下圖中高亮的爲增長的內容:
最後,咱們經過java -jar HelloWolrd.jar命令,則可運行其程序。之後咱們拿着這個jar包就能夠隨處顯示"Hello World",比以前要弄一大串選項方便多了。
8、總結
本文從jdk的下載、安裝,環境的配置,程序的編寫、編譯以及執行,從頭至尾作了很詳盡的介紹,爲的是讓你們對這個過程有個深入的瞭解。環境配好了,用上IDE了,之後你們就可能不多接觸這一過程的了。但這一過程不能丟,這是一個基礎,正如我前面說的,若是你不瞭解基礎,遇到問題的時候,都不知道從何解決。上層東西學多了,但卻不瞭解底層到底是怎麼一回事,內心沒有底,人家換個包裝,你又從新學習,而作不到觸類旁通,那是事倍功半啊!
9、參考資料:
1.JVM學習筆記(二)------Java代碼編譯和執行的整個過程(http://blog.csdn.net/cutesource/article/details/5904542)