新聞中心
在Linux環(huán)境下,Java應(yīng)用程序的運(yùn)行需要依賴各種不同的類庫和jar包,而設(shè)置classpath就是告訴操作系統(tǒng)Java程序去哪里找這些類庫和jar包。設(shè)置正確的classpath對(duì)于Java程序的運(yùn)行非常重要,否則可能會(huì)導(dǎo)致程序無法正常啟動(dòng)或出現(xiàn)各種異常。那么如何正確設(shè)置Linux的classpath呢?本文將從以下幾個(gè)方面給出詳細(xì)的解答。

一、什么是classpath
classpath就是Java程序在運(yùn)行時(shí)查找類和jar包的路徑,系統(tǒng)會(huì)根據(jù)這些路徑去查找相應(yīng)的類和jar包。classpath的設(shè)置是Java程序必須要進(jìn)行的必要步驟之一。classpath可以在命令行中進(jìn)行設(shè)置,也可以在Java代碼中進(jìn)行設(shè)置。
二、classpath的設(shè)置方式
在Linux環(huán)境下,classpath的設(shè)置方式主要有三種:
1. 通過命令行設(shè)置
通過命令行設(shè)置classpath可以簡(jiǎn)單快速,但當(dāng)再次執(zhí)行程序時(shí),要重新輸入classpath。在命令行中,可以使用-cp或-classpath選項(xiàng)來指定classpath的值。例如:
java -cp /opt/lib:.
2. 通過環(huán)境變量設(shè)置
通過環(huán)境變量方式設(shè)置classpath,每次啟動(dòng)時(shí)只要設(shè)置一次,適用于需要頻繁使用的Java程序。在Linux環(huán)境下,可以通過修改.bash_profile文件或.bashrc文件,將classpath加入環(huán)境變量中,例如:
export CLASSPATH=$CLASSPATH:/opt/lib
3. 在Java代碼中設(shè)置
在Java代碼中設(shè)置classpath的方式,可以靈活控制和定義類加載器的行為,但需要在Java代碼中顯式的設(shè)置classpath,例如:
ClassLoader classLoader = new URLClassLoader(new URL[] {new URL(“file:///opt/lib”)});
三、classpath的設(shè)置規(guī)則
在設(shè)置classpath時(shí),需要注意以下規(guī)則:
1. 如果設(shè)置的是目錄,則在目錄后面加上“:”或“;”。例如:/opt/lib:.
2. 如果設(shè)置的是jar包,則在jar包后面加上“:”或“;”。例如:/opt/lib/a.jar:/opt/lib/b.jar
3. 如果設(shè)置的是當(dāng)前目錄,則直接使用“.”。例如:/opt/lib:.
4. 如果classpath中包含空格和特殊字符,可以使用雙引號(hào)或單引號(hào)來標(biāo)示。例如:”/opt/jdbc driver/mysql.jar”
四、classpath的常見錯(cuò)誤
在設(shè)置classpath時(shí),常見的錯(cuò)誤有以下幾種:
1. 類路徑設(shè)置不全,導(dǎo)致無法找到相應(yīng)的類和jar包。
2. 類路徑設(shè)置順序錯(cuò)誤,導(dǎo)致程序無法正確加載類和jar包。
3. 重復(fù)設(shè)置classpath,導(dǎo)致無法正常運(yùn)行程序。
4. 在代碼中使用了類似于Class.forName(“org.mysql.Driver”)這樣的代碼,如果沒有在classpath中正確的添加mysql的驅(qū)動(dòng)jar包,將會(huì)導(dǎo)致類找不到異常。
五、
classpath是Java程序必須要進(jìn)行的必要步驟之一,設(shè)置正確的classpath對(duì)于Java程序的運(yùn)行非常重要。在Linux環(huán)境下,classpath的設(shè)置方式主要有三種:通過命令行設(shè)置、通過環(huán)境變量設(shè)置和在Java代碼中設(shè)置。在設(shè)置classpath時(shí)需要注意規(guī)則和常見的錯(cuò)誤,以確保程序能夠正常運(yùn)行。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
求問。linux 下 java 為什么不用設(shè)置classpath就能編譯 或者默認(rèn)jdk在哪?echo $JAVA_HOME 是空的
設(shè)置$JAVA_HOME的目的是通過這個(gè)變量獲取編譯器 javac 和可執(zhí)行程序 java所在路徑。通常是一些腳本或其他程序需要$JAVA_HOME,java或javac本銷扮身可以得到虧仔灶JDK相關(guān)的路徑信息,戚乎不需要$JAVA_HOME。
Linux下,通過 PATH 中的路徑搜索所有的可執(zhí)行程序,如果可以搜索到 javac,那么就能進(jìn)行編譯,本身并不需要$JAVA_HOME。如果通過系統(tǒng)的包管理來安裝的JDK,往往在系統(tǒng)路徑/usr/bin或/usr/local/bin之類的都會(huì)包含javac的軟鏈接。
調(diào)用javac時(shí)可以通過 -cp 添加自己的jar文件。JDK自身的路徑由javac自己處理,并不會(huì)受影響。
linux 中怎么設(shè)置java
三種配置環(huán)境變量的方法
1. 修改/etc/profile文件
如果你的計(jì)算機(jī)僅僅作為開發(fā)使用時(shí)推薦使用這種方法,因?yàn)樗杏脩舻膕hell都有權(quán)使用這些環(huán)境變量,可能會(huì)給系統(tǒng)帶來安全性問題。
·用文本則友編輯器打開/etc/profile
·在profile文件末尾加入:
export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
·重新登錄或執(zhí)行 sudo source /etc/profile
·注解
a. 假設(shè)你要將 /usr/share/jdk1.6.0_14改為你的jdk安裝目錄
b. linux下用冒號(hào)“:”來分隔爛彎路徑
c. $PATH / $CLASSPATH / $JAVA_HOME 是用來引用原來的環(huán)境變量的值
在設(shè)置環(huán)境變量時(shí)特別要注意不能把原來的值給覆蓋掉了,這是一種
常見的錯(cuò)誤。
d. CLASSPATH中當(dāng)前目錄“.”不能丟,把當(dāng)前目錄丟掉也是常見的錯(cuò)誤。
e. export是把這三個(gè)變量導(dǎo)出為全局變量。
f. 大小寫必須嚴(yán)格區(qū)分。
2. 修改.bash_profile文件
這種方法更為安全,它可以把使用這些環(huán)境變量的權(quán)限控制到用戶級(jí)別,如果你需要給某個(gè)用戶權(quán)限使用這些環(huán)境變量,你只需要修改其個(gè)人用戶主目錄下的.bash_profile文件就可以了。
·用文本編輯器打開用戶目錄下的.bash_profile文件
·在.bash_profile文件末尾加入:
export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
·重新登錄或執(zhí)行source ~/.bash_profile
3. 直接在shell下設(shè)置變量
不贊成使用這種方法,因?yàn)閾Q個(gè)shell,你的設(shè)置就無效了,因此這種方法僅僅是臨時(shí)使用,以后要使用的時(shí)候又要重新設(shè)置,比較麻煩。
只需在shell終端執(zhí)行下列命令:
export JAVA_HOME=/usr/share/jdk1.6.0_14
export PATH=$JAVA_HOME/bin:$PATH
export 饑盯悶CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
Linux下Java安裝與配置
以JDK1.6.0_43為例介紹一下如何在linux中設(shè)置java
1. 下載銷頃jdk-6u43-linux-x64.bin,
增加可執(zhí)行權(quán)伍斗旦限 chmod +x jdk-6u43-linux-x64.bin,
執(zhí)行 ./jdk-6u43-linux-x64.bin 生成目錄jdk1.6.0_43
拷貝到/usr/share下,mv jdk1.6.0_43 /usr/share
另外,jdk-6u43-linux-x64.bin將所有文件解壓縮到當(dāng)前目錄的腔擾jdk$verison_$update目錄,
jdk-6u43-linux-x64-rpm.bin解壓縮生成rpm包,用rpm -ivh命令安裝
2. 配置環(huán)境變量
在/etc/profile下增加
# set Java environment
JAVA_HOME=/usr/share/jdk1.6.0_43
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
3. 測(cè)試
# echo $JAVA_HOME
/usr/share/jdk1.6.0_43
# echo $PATH
/usr/share/jdk1.6.0_43/bin:/usr/lib64/qt-3.3/bin:/usr/local/in:/usr/local/bin:/in:/bin:/usr/in:/usr/bin:/root/bin
# echo $CLASSPATH
.:/usr/share/jdk1.6.0_43/lib/dt.jar:/usr/share/jdk1.6.0_43/lib/tools.jar
# java -version
java version “1.6.0_43”
Java(TM) SE Runtime Environment (build 1.6.0_43-b01)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)
1.首先要去下載好JDK,Java SE 8的官方網(wǎng)址是
根據(jù)自己的系統(tǒng)版本來選擇是要使用32位版還是64位版。Linux提供了兩種安裝方式一個(gè)是.rpm,另一個(gè)是.tar.gz,我所使用的是.tar.gz。在下載前不要忘了選擇Accept License Agreement。
2.可以使用下面的命令來查看自己的系統(tǒng)是32位還是64位
getconf LONG_BIT
3.接下來我們對(duì)下載的文件進(jìn)行解壓
tar -zxvf jdk-8u102-linux-x64.tar.gz
4.然后我們來新建一個(gè)目錄,并將解壓好的文件移動(dòng)過去
mkdir /usr/java
mv ./jdk1.8.0_102 /usr/java
5.然后我們來設(shè)置環(huán)境變量,這里我們需要修改/etc/profile文件
先用vim打開/etc/profile文件
vim /etc/profile
6.在文件最后添加下面的內(nèi)容
JAVA_HOME=/usr/java/jdk1.8.0_102
export JRE_HOME=/usr/java/jdk1.8.0_102/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
其中的jdk1.8.0_102請(qǐng)根據(jù)自己的實(shí)際文件名作出更改
添加完成后,保存并退出。最后一步便是重啟計(jì)算機(jī)。
reboot
計(jì)算機(jī)重啟后我們可以在終端中輸入java來檢測(cè)是否配置成功
java
如果配置成功便會(huì)顯示提示信息
用法: java class
(執(zhí)行類)
或 java -jar jarfile
(執(zhí)行 jar 文件)
其中選項(xiàng)包括:
-d32 使用 32 位數(shù)據(jù)模型 (如果可用)
-d64 使用 64 位數(shù)據(jù)模型 (如果可用)
-server 選擇 “server” VM
默認(rèn) VM 是 server,
因?yàn)槟窃诜?wù)器類計(jì)算機(jī)上運(yùn)行。判如
-cp
-classpath
用 : 分隔的目錄, JAR 檔案
和 ZIP 檔案列表, 用于搜索類文件。
-D=
設(shè)置系統(tǒng)屬性
-verbose:
啟用詳細(xì)輸出
-version 輸出產(chǎn)品版本并退出
-version:
警告: 此功能已過時(shí), 將在
未來發(fā)行版中刪除。
需要指定的版本才能運(yùn)行
-showversion 輸出產(chǎn)品版本并繼續(xù)
-jre-restrict-search | -no-jre-restrict-search
警告: 此功能已過時(shí), 將在
未來發(fā)行版中刪除。
在版本搜索中包括/排除用戶專用 JRE
-? -help 輸出此幫助消息
-X輸出非標(biāo)準(zhǔn)選項(xiàng)的幫助
-ea
-enableassertions
按指定的粒度啟用斷言
-da
-disableassertions
禁用具有猛拆指定粒度的斷言
-esa | -enablesystemassertions
啟用系統(tǒng)斷言
-dsa | -disablesystemassertions
禁用系統(tǒng)斷言
-agentlib:
加載本機(jī)代理庫 , 例如 -agentlib:hprof
另請(qǐng)參閱 -agentlib:jdwp=help 和 -agentlib:hprof=help
-agentpath:
按完整路徑名加載本機(jī)代理庫
-javaagent:
加載 Java 編程語言代理, 請(qǐng)參閱 java.lang.instrument
-splash:
使用指定的圖像顯示啟動(dòng)屏幕
1、如果你的linux服務(wù)器不會(huì)重啟,或者一次性使用java,可以直接在shell內(nèi)依次輸辯啟入一下幾條命令:
export JAVA_HOME=/usr/share/jdk1.8.0_71
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
2、如果考慮到長久使用,且機(jī)器有可能會(huì)被重啟掉,那么使用以下方法:
打開/etc/profile(用vi或簡(jiǎn)灶含者其他你自己攔笑喜歡的文本編輯器)
在文件末尾添加如下語句:
JAVA_HOME=/usr/java/default
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
linux上安裝java后主要需要設(shè)運(yùn)悶置兩個(gè)地方
JAVA_HOME, apt/yum安裝的jdk通常在/usr/lib/jvm下, 如/usr/lib/jvm/java-8-openjdk-amd64, mvn之類的工具依賴JAVA_HOME環(huán)境變量
PATH, 需要確保$JAVA_HOME/bin在PATH中
配置文件修改, 通??梢孕薷膥/.bashrc
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
要對(duì)所有用戶生效可以編旁埋彎輯/etc/profile.d/java.sh, 添加
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
linux安裝 jdk 環(huán)境變量怎么設(shè)置
安裝:
# rpm -ivh jdk-8u25-linux-x64.rpm
配置jdk環(huán)境變量
方法一:在Shell下設(shè)置變量(該方法只對(duì)當(dāng)前的shell有效,如果打開另一個(gè)shell就需要重新配置)
export JAVA_HOME=/usr/java/jdk1.7.0_40/
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
(其中如果只配置 export PATH=/usr/java/jdk1.7.0_40/bin:$PATH 也可以)
方法二:修改/etc/profile文件(該方法一勞永逸,設(shè)置一次,對(duì)所有用戶有效)
用vim編輯器打開/etc/profile文件,在文件尾部加入環(huán)境變量的定義
JAVA_HOME=/usr/java/jdk1.8.0_25/
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
保存退出,查看java版本檔叢
# java -version
java version “1.8.0_25”
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
表示安裝成功
方法三:修改~/.bashrc文件(該方法修改后只對(duì)當(dāng)前盯缺用戶有效,對(duì)該用戶的所有shell都有效)
用vim編輯器打開~/.bashrc文件
在文件尾部凱蠢辯加入jdk環(huán)境變量的定義
set JAVA_HOME=/usr/java/jdk1.8.0_25/
export JAVA_HOME
set PATH=$JAVA_HOME/bin:$PATH
export PATH
set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
關(guān)于linux classpath 設(shè)置的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)-老牌IDC、云計(jì)算及IT信息化服務(wù)領(lǐng)域的服務(wù)供應(yīng)商,業(yè)務(wù)涵蓋IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)服務(wù)、云計(jì)算服務(wù)、IT信息化、AI算力租賃平臺(tái)(智算云),軟件開發(fā),網(wǎng)站建設(shè),咨詢熱線:028-86922220
本文標(biāo)題:如何正確設(shè)置Linux的classpath?(linuxclasspath設(shè)置)
新聞來源:http://fisionsoft.com.cn/article/cdgcepi.html


咨詢
建站咨詢
