导航:首页 > 编程语言 > java加载指定jar

java加载指定jar

发布时间:2023-05-31 10:05:33

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

阅读全文

与java加载指定jar相关的资料

热点内容
网络加载视频失败是怎么回事 浏览:805
传奇账号在哪个文件夹里 浏览:346
百度app在哪里安装 浏览:587
如何设置路由器网络不断网 浏览:471
传到qq群里的文件怎么删除 浏览:861
索尼安卓71更新日志 浏览:234
怎么找手机里的垃圾app 浏览:540
2015蓝桥杯代码填空 浏览:698
安卓数据库dbexecSQL 浏览:227
doc重命名文件格式 浏览:728
getscreen截图工具下载 浏览:719
共识数据是什么时候开始的 浏览:96
数码管显示电压程序 浏览:479
数据库文件有哪个 浏览:543
途强储存在哪个文件夹 浏览:172
如何恢复被覆盖文件 浏览:611
iphone5用哪个版本最好 浏览:327
extjsgrid禁用 浏览:426
如何查找国外论文的编程代码 浏览:366
暗金颜色代码 浏览:789

友情链接