前段时间要使用class 类与jar 包的动态加载,在网络上找了很多资料,都不完整,现在我把简单整理与修改后的代码贴出来供大家参考, 如果有错误,请大家指出,:)
jar 包加载
package com.sms.util;
import java.net.URLClassLoader;
import java.net.URL;
import java.io.File;
import java.io.IOException;
public class NewClassLoader
extends URLClassLoader {
public NewClassLoader() {
super(new URL[0], ClassLoader.getSystemClassLoader());
}
public void addPath(String paths) {
if (paths == null || paths.length() <= 0) {
return;
}
String separator = System.getProperty("path.separator");
String[] pathToAdds = paths.split(separator);
for (int i = 0; i < pathToAdds.length; i++) {
if (pathToAdds[i] != null && pathToAdds[i].length() > 0) {
try {
File pathToAdd = new File(pathToAdds[i]).getCanonicalFile();
System.out.println(pathToAdd.toURL());
addURL(pathToAdd.toURL());
}
catch (IOException e) {
Constants.exceptionHandling(e);
}
}
}
}
}
|
类加载
import java.net.URLClassLoader;
import java.net.URL;
import java.io.File;
import java.io.IOException;
public class NewClassLoader
extends URLClassLoader {
public NewClassLoader() {
super(new URL[0], ClassLoader.getSystemClassLoader());
}
public void addPath(String paths) {
if (paths == null || paths.length() <= 0) {
return;
}
String separator = System.getProperty("path.separator");
String[] pathToAdds = paths.split(separator);
for (int i = 0; i < pathToAdds.length; i++) {
if (pathToAdds[i] != null && pathToAdds[i].length() > 0) {
try {
File pathToAdd = new File(pathToAdds[i]).getCanonicalFile();
System.out.println(pathToAdd.toURL());
addURL(pathToAdd.toURL());
}
catch (IOException e) {
Constants.exceptionHandling(e);
}
}
}
}
}
|
分享到:
相关推荐
Spring bean 一般通过配置文件和注解进行加载,如果要实现jar或class...测试示例中是spring boot 的部分代码,动态加载的内容为接口实现类,且初始化时加载本地的实现类,动态加载后改为非程序加载目录中的jar实现类。
一个工具类实现了动态加载jar包 在不重启服务器的情况下,可以调用jar包的class
eclipse查看源码可以通过反编译成.class文件,插件所需要有jad.exe net.sf.jadclipse_3.3.0.jar
功能讲解: 1.搜索分析指定路径下所有jar包中是否存在指定文件。譬方说要在jar包中查询某个**.class文件。...6.查看Class从那个jar文件加载及在jar文件中查找Class 7.快速找出Class文件所在的Jar文件
开发完毕,部署的时候,将开发的class打成一个可执行jar包,会发现通过Class.forName(String classname) 或ClassLoader.getSystemClassLoader().loadClass(String classname)来动态载入存在于第三方jar包中的class会抛...
在jdk1.2以后,类加载是通过委托来完成的,这意味着如果 ClassLoader 不能找到类,它会请求父代 ClassLoader 来执行此项任务,所有 ClassLoaders 的根是系统 ClassLoader,它会以缺省方式装入类 -- 即,从本地文件...
解压ikvmbin ,并将%IKVM_HOME%\bin添加到path中。...类文件(.class)或包文件(.jar) Java类或包文件的名字可以含有通配符(如*.class)。 参数----参数说明 -out:输出文件----指定输出文
解压ikvmbin ,并将%IKVM_HOME%\bin添加到path中。...类文件(.class)或包文件(.jar) Java类或包文件的名字可以含有通配符(如*.class)。 参数----参数说明 -out:输出文件----指定输出文
首先第一个是 jar 文件的制作,Java 里面直接把 .class 文件打包到 .jar 文件里面就可以了,但是 Android 的 Dalvik VM 是不认 Java ...要动态加载其它类,可以用的 Class Loader 有: DexClassLoader,PathClassLoader
java调用kettle时需要的jar包合计,其中包括了可能会用到的Oracle和MySQL的驱动文件
注意这个jar有可能有些class文件没有加载进去(比如shutdown.calss等等),所以剩下的就是自己慢慢调了,你可以创建一个jre环境,执行命令jre\bin\java.exe -Dfile.encoding=utf-8 -jar mytest.jar 进行报错调试。...
1.选择【浏览JAR】可将jar包打成程序、选择【选择目录】可选择calss文件目录(文件夹下直接为主启动类(包含main函数的类)class文件),之后选择JRE版本,然后点击下一步 2.选择生成程序类型:控制台程序、窗口程序、...
Step3:如果需要发送请求参数,则可调用HttpGet、HttpPost共同的setParams(HttpParams params)方法来添加请求参数;对于HttpPost对象而言,也可以调用setEntity(HttpEntity entity)方法来设置请求参数; Step4:...
Eclipse版本Version: Neon.3 Release (4.6.3),修改了GetterSetterUtil.class之后的jar包,能自动添加getter和setter方法注释。
1、将cors-filter-2.4.jar和java-property-utils-1.9.1.jar,两个jar包文件放入geoserver目录下webapps\geoserver\web-inf\lib中。 2、打开geoserver目录下webapps\geoserver\web-inf中的web.xml 3、添加过滤器...
这是因为通过class.getResource()方法在IDEA中运行的路径和生成jar包获取的的路径是不同的。打成jar包后,获取图片的路径中有"xxx.jar!"这里面的内容是不能够被操作系统识别出来的,因此直接通过路径来获取文件是不...
主要介绍了Java 动态加载jar和class文件实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
1,用elicpse打包为jar包后转为exe经常出现数据库连接错误 2,直接把"mysql打包文件"文件夹的东西全部添加的jar包的有class文件的文件夹下面(解决步骤) 3,第二步只需要winrar即可
CORS支持需要用到两个jar文件,分别是cors-filter-1.7.jar和java-property-utils-1.9.1.jar。 把他们放到工程的lib中,然后在web.xml中添加: < filter > < filter-name > CORS </ filter-name > < filter-class...
android.txt 不要混淆xUtils中的注解类型,添加混淆配置:-keep class * extends java.lang.annotation.Annotation { *; } 对使用DbUtils模块持久化的实体类不要混淆,或者注解所有表和列名称@Table(name="xxx"),@...