java載入包
㈠ java會默認載入哪些包
java的類裝載器使用的是優先策略,載入類的時候先找到哪個就載入哪個。有時候我們做一個系統,當類庫非常龐大的時候,類可能會出現沖突,也就是類路徑中存在不同版本的兩個相同的類,這往往給調試帶來非常大的麻煩,我們可能修改了類,但由於類載入器卻使用的是另外一個未被更新的類,這個時候就會丈二和尚摸不著頭腦,一度使調試過程誤入歧途。
import java.security.CodeSource;
import java.security.ProtectionDomain;
import org.apache.commons.lang.StringUtils;/*** 判斷類是從哪個jar包中載入的
* @author Winter Lau*/public class Test {
public static void main(String[] args) {
ProtectionDomain pd = StringUtils.class.getProtectionDomain();
CodeSource cs = pd.getCodeSource();
System.out.println(cs.getLocation());}}
這段代碼在我的機器上運行的結果是:
但是有一個限制經由系統類載入器所載入的類不能使用該方法來獲取路徑,假如你對 String類做上面的測試就會發生空指針異常,因為所得到的CodeSource為空,你可以在程序啟動的時候使用-verbose來查看系統類的裝載信息,使用方式有如:
㈡ java classloader 怎麼載入jar包
設我們有一個hello.jar文件,裡面有一個Util類,我們希望在運行期調將這個jar包放入到我們運行環境並且調用裡面的Util.getVersion方法。怎麼實現?
在java中,我們的類都是通過ClassLoader來載入的,同時ClassLoader具有層級關系,當某個類找不到時,它會去他的父類載入器去尋找,如果依然找不到,就拋出ClassNotFoundException了。
為了動態載入hello.jar裡面的Util類,我們需要將這個jar包放入到我們的類載入器中去,然後再獲取裡面的類。如下面的代碼。
// 位於hello.jar
package com.flyingzl;
public class Util {
public static void getVersion(){
System.out.println("java version: " + System.getProperty("java.version"));
}
}
㈢ java如何導入包
1、首先在項目下創建一個新的文件夾,用來保存jar包。在項目名上點擊滑鼠右鍵,按順序點擊【New】→【Floder】,打開新建文件夾的窗口
㈣ java可以動態載入一個jar包,並且調用裡面的類和方法嗎
動態加入jar包。
一CMD運行時,先設置執行命令Java-classpath目錄或者路徑
二把jar文件放在你安裝的JDK安裝目錄下:\jdk1.7.0_03\jre\lib