A. java載入jar包:給你任意路徑的一個jar包,用Java程序載入該jar包,並引用jar包里類的方法
實體類 User
JSP頁面專
<form action="">
<input type="checkbox" id="n1" name="names" value="a"/>
<input type="checkbox" id="n2" name="names" value="b"/>
<input type="checkbox" id="n3" name="names" value="c"/>
<input type="checkbox" id="n4" name="names" value="d"/>
</form>
JAVA文件屬
String[] names = this.getRequest().getParameterValues("names");
User user = new User();
user.setNames(names);
B. java可以動態載入一個jar包,並且調用裡面的類和方法嗎
可以的
jar可以看成來是一個自存放很多class的的地方,jar包放入classpath後,其實只要能實現動態的載入類就可以實現題目中的需求了
技術是 java 反射機制,就是一個利用提供類全名而得到這個類實例的機制
通過反射得到Class這個類,然後可以得到關於這個類的方法,欄位等相關信息
具體可以查看相關知識
C. 如何在Java運行的時候動態載入一個jar包到classpath裡面
給你個例子自己看一下吧不會了再追問,注釋基本都有了
importjava.io.File;
importjava.lang.reflect.Method;
importjava.net.URL;
importjava.net.URLClassLoader;
importjava.util.List;
{
privatestaticMethodaddURL=initAddMethod();
=(URLClassLoader)ClassLoader.getSystemClassLoader();
/**
*初始化addUrl方法.
*@return可訪問addUrl方法的Method對象
*/
(){
try{
Methodadd=URLClassLoader.class.getDeclaredMethod("addURL",newClass[]{URL.class});
add.setAccessible(true);
returnadd;
}
catch(Exceptione){
thrownewRuntimeException(e);
}
}
/**
*載入jarclasspath。
*/
publicstaticvoidloadClasspath(){
List<String>files=getJarFiles();
for(Stringf:files){
loadClasspath(f);
}
List<String>resFiles=getResFiles();
for(Stringr:resFiles){
loadResourceDir(r);
}
}
(Stringfilepath){
Filefile=newFile(filepath);
loopFiles(file);
}
(Stringfilepath){
Filefile=newFile(filepath);
loopDirs(file);
}
/***//**
*循環遍歷目錄,找出所有的資源路徑。
*@paramfile當前遍歷文件
*/
privatestaticvoidloopDirs(Filefile){
//資源文件只載入路徑
if(file.isDirectory()){
addURL(file);
File[]tmps=file.listFiles();
for(Filetmp:tmps){
loopDirs(tmp);
}
}
}
/**
*循環遍歷目錄,找出所有的jar包。
*@paramfile當前遍歷文件
*/
privatestaticvoidloopFiles(Filefile){
if(file.isDirectory()){
File[]tmps=file.listFiles();
for(Filetmp:tmps){
loopFiles(tmp);
}
}
else{
if(file.getAbsolutePath().endsWith(".jar")||file.getAbsolutePath().endsWith(".zip")){
addURL(file);
}
}
}
/**
*通過filepath載入文件到classpath。
*@paramfilePath文件路徑
*@returnURL
*@throwsException異常
*/
privatestaticvoidaddURL(Filefile){
try{
addURL.invoke(classloader,newObject[]{file.toURI().toURL()});
}
catch(Exceptione){
}
}/***
*從配置文件中得到配置的需要載入到classpath里的路徑集合。
*@return
*/
privatestaticList<String>getJarFiles(){
//TODO從properties文件中讀取配置信息如果不想配置可以自己new一個List<String>然後把jar的路徑加進去然後返回
returnnull;
}
/**
*從配置文件中得到配置的需要載入classpath里的資源路徑集合
*@return
*/
privatestaticList<String>getResFiles(){
//TODO從properties文件中讀取配置信息略如果不想配置可以自己new一個List<String>然後把jar的路徑加進去然後返回額如果沒有資源路徑為空就可以了
returnnull;
}
publicstaticvoidmain(String[]args){
ExtClasspathLoader.loadClasspath();
}
}
D. java中關於下載來的.jar文件載入問題
jar包的載入也是完全靠classpath指定.如果正確的指消沒定了classpath,同時正確的寫了import語句,那隱廳調用應該是正確的. 可灶橋隱以看看mysql網站上的java例子.
E. 關於java動態載入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"));
}
}
import java.io.File;
import java.lang.reflect.Method;
import java.net.URL;
import java.net.URLClassLoader;
public class Main {
public static void main(String[] args) {
URL[] urls = new URL[] {};
MyClassLoader classLoader = new MyClassLoader(urls, null);
try {
classLoader.addJar(new File("c:/hello.jar").toURI().toURL());
Class<?> clazz = classLoader.loadClass("com.flyingzl.Util");
Method method = clazz.getDeclaredMethod("getVersion");
method.invoke(null);
classLoader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
static class MyClassLoader extends URLClassLoader {
public MyClassLoader(URL[] urls) {
super(urls);
}
public MyClassLoader(URL[] urls, ClassLoader parent) {
super(urls, parent);
}
public void addJar(URL url) {
this.addURL(url);
}
}
}
注意:這里僅僅是為了展示如何動態載入jar包,代碼寫得很粗,生產代碼需要有更完善的異常處理。我們只關心如何動態載入jar包即可。
動態載入jar包,需要用到java.net.URLClassLoader這個類,它可以指定一個路徑將jar包或者classes文件載入到類空間。載入完畢後,直接調用loadClass就可以載入指定的類,然後通過反射生成實例或者調用方法即可。
其實,Tomcat等伺服器也利用了此思路,比如每一個web應用啟動時,它都會自動載入其下的lib文件夾下的jar包。
運行程序,我們就可以看到程序正常輸出:
java version: 1.7.0_03
F. java-jar指定配置文件啟動
題主是否想詢問「java-jar指定配置文件怎麼啟動」?1、首先,打開iava編程軟體Eclipse,進入軟體主頁面。
2、其次,在左上方找到文件,點擊進入,找到java-jar指定配置文件,點擊打開。
3、最後,等待系統載入完成,即可打開。
G. java支持引用指定jar的范圍
適用范圍ElasticSearch6.x。經查詢Java的相關信息得知,java支持閉拿引行態李用指定jar的檔遲范圍適用范圍ElasticSearch6.x。Java是由SunMicrosystems公司於1995年5月推出的Java面向對象程序設計語言和Java平台的總稱。
H. 在java中怎樣導入一個jar的包
import 還是照常寫,比如你有個myTools.jar,裡面的mytools\first目錄下都是你畝談想導入的(包就是mytools.first),你啟燃可以這樣寫:import mytools.first.*;
然迅旁碰後編譯的時候把jar文件添加到-classpath參數里就可以了
javac.exe -classpath "<前面的dt.jar和tools.jar等包在此省略>;C:\myTools.jar" XXXX.java
I. springjava代碼里中載入jar路徑
springjava代輪坦碼里中載入jar路徑:UI,image,background.jpg。路徑最前面的,表示根目錄,即絕臘升桐對路徑,若沒有最左邊的,則表示相對路徑。使用哪種方法看笑告自己的需求,這里使用了絕對路徑。載入的時候使用。
J. 在java工程中怎麼導入jar包
1、 項目名稱上單擊右鍵,點擊properties。
2 、點擊「Java Build Path」,點擊「Libraries」,點擊「Add External JARs」
3 、選擇jar