1. 程式人生 > >環境變數設定及Java命令列使用

環境變數設定及Java命令列使用

一、Java環境變數設定

windows 下配置JDK環境變數:

1. 安裝JDK,安裝過程中可以自定義安裝目錄,例如我們選擇安裝目錄為C:\Program Files\Java\jdk1.7.0_40;

2. 安裝完成後,右擊“計算機”,點選“屬性”;

3. 點選“高階系統設定”,選擇“高階”選項卡,點選“環境變數”;

4. 在“系統變數”中,設定3項屬性,JAVA_HOME,PATH,CLASSPATH(大小寫無所謂),若已存在則點選“編輯”,不存在則點選“新建”;

5. JAVA_HOME指明JDK安裝路徑,就是剛才安裝時所選擇的路徑C:\Program Files\Java\jdk1.7.0_40

,此路徑下包括lib,bin,jre等資料夾(此變數最好設定,因為以後執行tomcat,eclipse等都需要依*此變數);

6. Path使得系統可以在任何路徑下識別java命令,設為:%JAVA_HOME%\bin;

7. CLASSPATH為java載入類(classorlib)路徑,只有類在classpath中,java命令才能識別,設為.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

8.“開始”->;“執行”,鍵入“cmd”;

9. 鍵入命令“java-version”,“java”,“javac”幾個命令,出現畫面,說明環境變數配置成功;

linux 下配置JDK環境變數:

Linux下使用“變數名=變數值”設定變數,並使用export命令將其匯出為環境變數。為了使每一次登入都自動設定好這些變數,你需要在~/.bash_profile裡或者~./bashrc裡進行設定,如

export JAVA_HOME=/usr/local/jdk

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:.

設定PATH時用的$JAVA_HOME是指替換變數JAVA_HOME的值到$JAVA_HOME所在位置。如上句實際就是export PATH=/usr/local/jdk/bin:$PATH。這句中$PATH也是同樣的作用,不過這裡的PATH是指以前設定的PATH變數的值,而非本次設定PATH變數的值。

注意,在CLASSPATH中包含了一個“當前目錄(.)”。包含了該目錄後,就可以到任意目錄下去執行需要用到該目錄下某個類的Java程式,即使該路徑並未包含在CLASSPATH中也可以。原因很簡單:雖然沒有明確的把該路徑包含在CLASSPATH中,但CLASSPATH中的“.”在此時就代表了該路徑。

二、Java命令列使用

檢視引數列表

虛擬機器引數分為基本和擴充套件兩類,在命令列中輸入 JAVA_HOME/bin/java -help就可得到基本引數列表,在命令列輸入 JAVA_HOME/bin/java -X 就可得到擴充套件引數列表。

基本引數說明

javac –help

image

java -help

image

1. -client,-server

這兩個引數用於設定虛擬機器使用何種執行模式,client 模式啟動比較快,但執行時效能和記憶體管理效率不如 server 模式,通常用於客戶端應用程式。相反,server 模式啟動比 client 慢,但可獲得更高的執行效能。
在 windows上,預設的虛擬機器型別為 client 模式,如果要使用 server模式,就需要在啟動虛擬機器時加-server 引數,以獲得更高效能,對伺服器端應用,推薦採用 server 模式,尤其是多個 CPU 的系統。在 Linux,Solaris 上預設採用 server模式。

2. -hotspot

含義與 client 相同,jdk1.4 以前使用的引數,jdk1.4 開始不再使用,代之以 client。

3. -cp

執行Java要使用類的全名來執行。如果遇到資料夾,則需要-cp設定到頂級包下面,例如:

200811121226497087275

4. -classpath

虛擬機器在執行一個類時,需要將其裝入記憶體,虛擬機器搜尋類的方式和順序如下:Bootstrap classes,Extension classes,User classes

Bootstrap 虛擬機器自帶的 jar 或 zip 檔案,虛擬機器首先搜尋這些包檔案,用System.getProperty("sun.boot.class.path")可得到虛擬機器搜尋的包名
Extension 位於 jre/lib/ext 目錄下的 jar 檔案,虛擬機器在搜尋完 Bootstrap後就搜尋該目錄下的 jar 檔案。用System. getProperty("java.ext.dirs”)可得到虛擬機器使用Extension 搜尋路徑
User classes 搜尋順序為當前目錄、環境變數 CLASSPATH、-classpath

告知虛擬機器搜尋目錄名、jar 文件名、zip 文件名,之間用分號;分隔。例如當你自己開發了公共類幷包裝成一個 common.jar 包,在使用 common.jar 中的類時,就需要用-classpath common.jar 告訴虛擬機器從 common.jar 中查詢該類,否則虛擬機器就會丟擲 java.lang.NoClassDefFoundError異常,表明未找到類定義。在執行時可用 System.getProperty(“java.class.path”)得到虛擬機器查詢類的路徑。

使用-classpath 後虛擬機器將不再使用 CLASSPATH 中的類搜尋路徑,如果-classpath 和 CLASSPATH 都沒有設定,則虛擬機器使用當前路徑(.)作為類搜尋路徑。推薦使用-classpath 來定義虛擬機器要搜尋的類路徑,而不要使用環境變數 CLASSPATH 的搜尋路徑,以減少多個專案同時使用 CLASSPATH 時存在的潛在衝突。例如應用 1 要使用a1.0.jar 中的類 G,應用 2 要使用 a2.0.jar 中的類 G,a2.0.jar 是 a1.0.jar 的升級包,當a1.0.jar,a2.0.jar 都在 CLASSPATH 中,虛擬機器搜尋到第一個包中的類 G 時就停止搜尋, 如果應用1應用2的虛擬機器都從CLASSPATH中搜索,就會有一個應用得不到正確版本的類G。

javac -classpath .;jar01.jar;jar02.jar;……;jarN.jar class_name.java :使用-classpath選項,指定了在編譯Java原始碼時,用到類庫的位置。一般用於該類庫不在當前CLASSPATH的環境變數中。

5. -D<propertyName>=value

在虛擬機器的系統屬性中設定屬性名/值對,執行在此虛擬機器之上的應用程式可用。當虛擬機器報告類找不到或類衝突時可用此引數來診斷來檢視虛擬機器從裝入類的情況。

200811121226497391728     
7. -verbose:gc

在虛擬機發生記憶體回收時在輸出裝置顯示資訊,格式如下: [Full GC 268K->168K(1984K), 0.0187390 secs],該引數用來監視虛擬機器記憶體回收的情況
8. -verbose:jni

在虛擬機器呼叫 native 方法時輸出裝置顯示資訊,格式如下:[Dynamic-linking native method HelloNative.sum ... JNI] 該引數用來監視虛擬機器呼叫本地方法的情況,在發生 jni錯誤時可為診斷提供便利。

9. -version

顯示可執行的虛擬機器版本資訊然後退出。

10. –showversion

顯示版本資訊以及幫助資訊。&#160;


擴充套件引數說明

javac –X

image

java -X

image     
1. -Xmixed 
設定-client 模式虛擬機器對使用頻率高的方式進行 Just-In-Time 編譯和執行,對其他方法使用解釋方式執行。該方式是虛擬機器預設模式。
2. -Xint 
設定-client模式下執行的虛擬機器以解釋方式執行類的位元組碼,不將位元組碼編譯為本機碼。
3. -Xbootclasspath:path
4. -Xbootclasspath/a:path 
5. -Xbootclasspath/p:path 
改變虛擬機器裝載預設系統執行包 rt.jar 而從-Xbootclasspath 中設定的搜尋路徑中裝載系統執行類。除非你自己能寫一個執行時,否則不會用到該引數。
/a:將在預設搜尋路徑後加上 path 中的搜尋路徑。
/p:在預設搜尋路徑前先搜尋 path 中的搜尋路徑。 
6. -Xnoclassgc 
關閉虛擬機器對 class 的垃圾回收功能。 
7. -Xincgc
啟動增量垃圾收集器,預設是關閉的。增量垃圾收集器能減少偶然發生的長時間的垃圾回收造成的暫停時間。但增量垃圾收集器和應用程式併發執行,因此會佔用部分 CPU 在應用程式上的功能。
8. -Xloggc:<file> 
將虛擬機器每次垃圾回收的資訊寫到日誌檔案中,檔名由 file 指定,檔案格式是平檔案,內容和-verbose:gc 輸出內容相同。
9. -Xbatch 
虛擬機器的預設執行方式是在後臺編譯類程式碼,然後在前臺執行程式碼,使用-Xbatch引數將關閉虛擬機器後臺編譯,在前臺編譯完成後再執行。
10. -Xms<size>
設定虛擬機器可用記憶體堆的初始大小,預設單位為位元組,該大小為 1024 的整數倍並且要大於1MB,可用 k(K)或m(M)為單位來設定較大的記憶體數。初始堆大小為 2MB。
例如:-Xms6400K,-Xms256M
11. -Xmx<size>
設定虛擬機器記憶體堆的最大可用大小,預設單位為位元組,該值必須為 1024 整數倍,並且要大於 2MB。可用 k(K)或 m(M)為單位來設定較大的記憶體數。預設堆最大值為 64MB。
例如:-Xmx81920K,-Xmx80M
當應用程式申請了大記憶體執行時虛擬機器丟擲 java.lang.OutOfMemoryError: Java heap space 錯誤,就需要使用-Xmx 設定。
12. -Xss<size>
設定執行緒棧的大小,預設單位為位元組。與-Xmx 類似,也可用 K 或 M 來設定較大的值。通常作業系統分配給執行緒棧的預設大小為 1MB。
另外也可在 java 中建立執行緒物件時設定棧的大小,建構函式原型為 Thread(ThreadGroup group, Runnable target, String name, long stackSize)。
13. -Xprof
輸出 CPU 執行時的診斷資訊
14. -Xfuture
對類檔案進行嚴格格式檢查,以保證類程式碼符合類程式碼規範。為保持向後相容,虛擬機器預設不進行嚴格的格式檢查。
15. -Xrs
減少虛擬機器中作業系統的訊號(singals)的使用。該引數通常用在虛擬機器以後臺服務方式執行時使用(如 Servlet)。
16. -Xcheck:jni
呼叫 JNI 函式時進行附加的檢查,特別地虛擬機器將校驗傳遞給 JNI 函式引數的合法性,在原生代碼中遇到非法資料時,虛擬機器將報一個致命錯誤而終止。使用該引數後將造成效能下降。

三、其他命令列使用

1. jar

image

jar命令列格式為:

jar {ctxu}[vfm0M] [jar-檔案] [manifest-檔案] [-C 目錄] 檔名,其中{ctxu}是jar命令的子命令,每次jar命令只能包含一個子命令。

使用JDK的jar命令打包,會自動在壓縮包中生成一個META-INF目錄,其中有一個MANIFEST.MF檔案。使用jar命令進行如下壓縮:

jar cf test.jar test

test.jar 壓縮包中,包含一個test資料夾和一個META-INF資料夾,其中有一個MANIFEST.MF檔案。


相關推薦

環境變數設定Java命令使用

一、Java環境變數設定 windows 下配置JDK環境變數: 1. 安裝JDK,安裝過程中可以自定義安裝目錄,例如我們選擇安裝目錄為C:\Program Files\Java\jdk1.7.0_40; 2. 安裝完成後,右擊“計算機”,點選“屬性”; 3. 點選“高階系

LD_LIBRARY_PATH環境變數設定Linux動態庫查詢方法

轉自:http://james23dier.iteye.com/blog/763274   略有改動 在linux下的程式設計,毫無疑問的遲早都要用到LD_LIBRARY_PATH這個環境變數,不過這個環境變數是基於shell的,也就是說只有在當前設定了的shell裡才會

Java環境變數配置----JDK開發環境環境變數設定

【宣告】 歡迎轉載,但請保留文章原始出處→_→ 生命壹號:http://www.cnblogs.com/smyhvae/ 文章來源:http://www.cnblogs.com/smyhvae/p/3788534.html   【正文】 1、安裝JDK開發環境 下載網站:http://

Dos命令臨時環境變數設定

1、檢視當前所有可用的環境變數:輸入 set 即可檢視。 2、檢視某個環境變數:輸入 “set 變數名”即可,比如想檢視path變數的值,即輸入 set path 3、修改環境變數 :輸入 “set 變數名=變數內容”即可,比如將path設定為“d:\nmake.exe”

Java環境變數設定(適用於Windows 2000、XP、2003)Windows JSP執行環境配置

首先,從Sun網站上下載jdk,當前版本為1_5_0_06(其他版本亦可) 最終下載下來的檔案為jdk-1_5_0_06-windows-i586-p.exe 雙擊jdk-1_5_0_06-windows-i586-p.exe開始安裝 預設安裝到C:/Program Fi

Windows下C語言命令編譯器的環境變數設定

安裝完VS任意一個版本後只要進行相應的環境變數的設定就能用命令列編譯C語言程式,此方法完美解決win8下VC6不相容又不想執行臃腫的VS 將該指令碼命令在命令列中執行一下即完成環境變數的設定,這裡以VS2012為例,其他版本需做相應更改,如VS2013,就設定VS130Co

java命令下如何設定classpath類路徑

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

java linux(ubuntu) 環境變數設定

一https://www.cnblogs.com/hanshuai/p/9604730.html :whereis java //查詢java 安裝路徑:which java //查詢java 執行路徑:ls -lrt /usr/bin/java :ls -lrt

吻逗死(windows)系統下自動部署指令碼(for java spring*)linux命令工具

轉載請註明出處:https://www.cnblogs.com/funnyzpc/p/10051647.html (^^)(^^)自動部署指令碼原本在上個公司就在使用,由於近期同事需要手動部署一個SpringCloud應用,一邊是sftp軟體上傳,一邊是SourceCRT命令列工具,看這著實很累,就順手把我

Linux JAVA環境變數設定(Linux JDK安裝)

1.安裝之前請確認是否有系統自帶的JDK 命令檢視是否有安裝JDK: shell> rpm -qa|grep jdk 解除安裝已安裝的JDK shell> yum -y remove java-1.6.0-openjdk-1.6.0.

MAC中JAVA安裝和環境變數設定

其他系統安裝JAVA JAVA 安裝 #繞過驗證直接下載 wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie"

java開發(三)mysql環境變數設定 持續更新...

(三)mysql環境變數設定 先下載相應的mysql服務,官網下載即可,文章結尾會給大家奉上大牛整理的各項資料的下載地址彙總! 1.右擊"我的電腦",點選"屬性" 進入系統頁面 2.點選"高階系統設定" 進入系統屬性,最下方既可以看到"環境變數"設定按鈕 3

Java在win10系統下32位和64位環境變數設定

今天解決的一個問題終於把困擾我多年的環境變數之類的東西搞懂了。 這一切罪惡的根源就是win10的64位系統可以相容32位軟體 當我多年前安裝java的時候,我選擇了安裝32位版本的java而並非64位版本。我按照百度經驗的教程https://jingyan.baidu.c

java命令編譯class檔案打包jar

編譯: cmd = "javac -classpath /I:/apache-tomcat-7.0.34/webapps/project/WEB-INF/classes/../temp/com/hongshao/classpath.jar -d /I:/apache-tomc

Kettle安裝/下載環境變數設定

相關網站 Kettle的安裝與配置 下載安裝,kettle版本為7.1,下載完成解壓任意目錄即可 配置環境變數 先配置kettle環境變數。在系統的環境變數新建:KETTLE_HOME變數,目錄指向kettle目錄。然後新建PA

java開發(三)mysql環境變數設定 持續更新...

(三)mysql環境變數設定 先下載相應的mysql服務,官網下載即可,文章結尾會給大家奉上大牛整理的各項資料的下載地址彙總! 1.右擊"我的電腦",點選"屬性" 進入系統頁面 2.點選"高階系統設定" 進入系統屬性,最下方既可以看到"環境變數"設定按鈕 3.點選"環境變數"按鈕,進

java開發(二)maven環境變數設定 持續更新...

(二)maven環境變數設定 先下載相應的maven壓縮包,官網下載即可,文章結尾會給大家奉上大牛整理的各項資料的下載地址彙總! 1.右擊"我的電腦",點選"屬性" 進入系統頁面 2.點選"高階系統設定" 進入系統屬性,最下方既可以看到"環境變數"設定按鈕 3.點選"環境變數"按鈕,

Java11安裝環境變數設定

一、安裝 1、到Oracle官網下載jdk11,並安裝。搜尋“jdk",選擇"請到java官網下載jdk安裝"進入。 點選"Accept License Agreement",然後在右下角選擇合適自己的系統的JDK版本。大部分人選右下角的windows64位安裝。

linux下編譯、連線執行時環境變數設定(boost庫為例)

以boost庫的存放目錄/usr/boost為例, 開啟/etc/profile, 追加以下內容(前兩行為編譯時路徑): export CPLUS_INCLUDE_PATH=/usr/boost/include:$CPLUS_INCLUDE_PATH export LIB

解決jdk環境變數設定完後,在cmd中執行javac出現’javac‘不是內部或外部命令,也不是可執行的程式或批處理檔案的錯誤提示

我的jdk'和jre都安裝在java_jdk這個資料夾下,如上圖所示。 在環境變數中的path和classpath的引數配置如下: 變數名:JAVA_HOME    變數值:F:\java_jdk\jdk1.8 變數名:Path                  變數值: