想在ubuntu下寫幾個java小程序很簡單,但作爲一隻不懂ubuntu的菜鳥,光安裝和配置java7就搞了我一個星期。本着“苦了我一個,幸福千萬家”的精神,總結一下我遇到的各種問題,希望有像我一樣的菜鳥看到此文後能少走彎路。
我的ubuntu版本是12.04的,jdk是Oracle官網提供的jdk-7u4-linux-i586.tar.gz,如果你對ubuntu不熟悉的話,建議在windows下載好後在拷貝過來。
現在,開始我苦逼的歷程。。。。
我要將它安裝在目錄usr/lib/jvm下,如果你不喜歡這個目錄的話,可隨意修改。(菜鳥的話建議不要)
首先,我拷貝過來的壓縮包是在home裏面。網上的教程說要把它拷貝到要安裝的目錄之下,於是我興致沖沖的點擊右鍵複製,接着。。。。驚奇地發現居然不讓我粘帖,說我沒有權限什麼的,那就繼續想辦法吧。網上的大牛們提供了root權限,可那個貌似有點危險,不適合我等菜鳥。那就用sudo吧。這是個什麼東西我不太懂,大概就是以管理者權限來執行命令之類的吧。
我是直接將安裝包移動到了jvm目錄下的,只需在命令行下輸入:
sudo mv jdk-7u4-linux-i586.tar.gz /usr/lib/jvm (注意中間有些地方有一個空格,不懂的地方請找谷歌或度娘)
接下來會提示你輸入密碼,就是你開機的密碼啦。不出意外的話,安裝包就移動到了jvm目錄下了,你可以自己去找找看(到系統文件裏面找)
接下來就是解壓縮了,直接敲命令:
sudo tar -zxvf jdk-7u4-linux-i586.tar.gz
不出意外,應該是嗖嗖嗖地跑出一大段代碼最後解壓完成。如果是提示你原安裝包不是什麼什麼的話,先檢查命令是否敲對了,如果敲對了,那麼恭喜你,你下載的安裝包是個假冒僞劣產品,再去重新下一個吧,真貨大概80m。(之前有大牛介紹說可以直接敲命令然後就能從官網下載,結果我就下了個假冒僞劣的~_~)
其實也可以直接在home裏面就解壓縮過來,不用複製拷貝,反正結果是一樣的。
如果以上都順利,那麼恭喜你,安裝成功了。這時機智的你應該可以在jvm目錄下看到一個jdk1.7.0_04的文件夾,沒錯,就是它了。
當然,我們知道新的jdk已經安裝了,可苯苯的ubuntu不知道啊,那就修改一下環境變量吧!(這個網上有很多方法,我只試了一種)
直接敲命令:
vim ~/.bashrc
出來一堆不明覺厲的東西,不管它,點一下i鍵,這時命令窗口左下角出現插入二字,表明我們可以修改文本了,直接在文件末尾輸入以下幾句話
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_04 (如果安裝目錄不同,請相應修改)
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=./:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
然後敲一下ese鍵,在敲:wq(冒號加wq)後保存退出
在命令行中輸入:
source ~/.bashrc 使之立即生效。
緊接着設置系統的默認jdk(這一塊網上資料很多,具體怎麼操作我不太清楚了,貌似有出現讓你選擇什麼的,應該不難的)
sudo update-alternatives --install "/usr/bin/java"" java"" /usr/lib/jvm/jdk1.7.0_04/bin/java"
300 (別忘了加雙引號哦!)
sudo update-alternatives --install "/usr/bin/javac"" javac"" /usr/lib/jvm/jdk1.7.0_04/bin/javac"
300
sudo update-alternatives --config java
sudo update-alternatives --config javac
到這裏基本OK了,鬆了口氣有木有,最後檢查一下吧。
輸入命令:
javac -version (網上有很多資料沒有檢查這一步其實是不全面的)
顯示: javac 1.7.0_04
輸入:
java -version
顯示:
java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b20)
Java HotSpot(TM) Server VM (build 23.0-b21, mixed mode)
如果是這樣,證明你成功了!
如果不是的話,可能是設置默認jdk時除了錯誤,好好檢查一下。
這裏普及一個小知識,也是因爲我沒有檢查javac的版本而導致的錯誤,糾結了老半天呢!
在這個jdk安裝包裏面,真正重要的工具有兩個,javac和java。其中javac是用來將java源文件編譯成字節碼形式的編譯器,這一步發生在你敲命令 javac 文件名.java 的時候,這也是爲什麼同一個java程序能在幾乎所有裝java虛擬機的機器上跑動的原因,因爲這種字節碼跟機器無關,然後再由java將這種字節碼編譯成機器碼。所以如果javac跟java版本不同,那麼用java編譯字節碼時便可能因爲不兼容而出現 找不到或無法加載主類 這樣的錯誤。
參考:http://www.cnblogs.com/maowang1991/archive/2013/04/18/3029396.html
http://zh.wikihow.com/%E5%9C%A8Ubuntu-Linux%E4%B8%8A%E5%8D%87%E7%BA%A7Oracle-Java