JAVA动态加载JAR
// 生成JAR包D:\TestClass.jar
package hand.java.loadjar;
public class TestClass {
private String sayHello = "Hello World!!";
public String sayHello() {
return this.sayHello;
}
}
// 创建一个测试类
package hand.java.loadjar;
import java.net.URL;
import java.net.URLClassLoader;
import java.lang.reflect.Method;
public class LoadJarTest {
public LoadJarTest(){
try {
URL url = new URL("file:D:\\TestClass.jar");
URLClassLoader loader = new URLClassLoader(new URL[]{ url });
// Load class
Class<?> myclass = loader.loadClass("hand.java.loadjar.TestClass");
// Gene new object
Object myobject = myclass.newInstance();
// Get function
Method method = myclass.getDeclaredMethod("sayHello");
// Make the function valid
method.setAccessible(true);
// Invoke method
System.out.println(method.invoke(myobject));
} catch (Exception ex) {
ex.printStackTrace();
}
}
@SuppressWarnings("unused")
public static void main(String[] args){
LoadJarTest loadjar = new LoadJarTest();
}
}
运行,输出内容:
Hello World!!
package hand.dynamic.jar;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
public class JarLoadUtil {
private static String jar_path = "D:\\JAR";
private static URLClassLoader loader = null;
// private static String curDir = System.getProperty("user.dir");
private static String separator = System.getProperty("file.separator");
public static URLClassLoader getURLClassLoader() {
if (loader == null) {
String fileNames[] = new File(jar_path).list();
if (fileNames != null && fileNames.length > 0) {
URL urls[] = new URL[fileNames.length];
for (int i = 0; i < fileNames.length; i++) {
try {
// if (fileNames[i].equals("dom4j-1.6.1.jar"))
urls[i] = new URL(jar_path + separator + fileNames[i]);
} catch (MalformedURLException e) {
System.out.println("加载指定目录下JAR文件出错!");
throw new RuntimeException("加载指定目录下JAR文件出错!", e);
}
}
loader = new URLClassLoader(urls);
}
}
return loader;
}
}
JAVA动态加载JAR的更多相关文章
- java动态加载jar文件
public static void main(String[] args) throws IllegalAccessException, IllegalArgumentException, Invo ...
- JAVA动态加载JAR包的实现
如何动态的加载这些驱动!不可能把所有的数据库驱动都集成到JAR包中吧?!于是动态加载驱动的JAR包就产生了!其实这些在做系统基础代码时,经常用到,只是一般我们没有机会去搞而已. 动态加载JAR包,使用 ...
- Java动态加载jar及class文件
经常碰到需要动态加载jar及class文件的场景.Java类由于需要加载和编译字节码,动态加载class文件较为麻烦,但JDK仍提供了一整套方法来动态加载jar文件和class文件. 一.动态加载ja ...
- java动态加载jar包,并运行其中的类和方法
动态加载jar包,在实际开发中经常会需要用到,尤其涉及平台和业务的关系的时候,业务逻辑部分可以独立出去交给业务方管理,业务方只需要提供jar包,就能在平台上运行. 下面通过一个实例来直观演示: 第一: ...
- Java动态加载JAR包
参考代码: package org; import java.io.File; import java.net.URL; import java.net.URLClassLoader; import ...
- JAVA动态加载JAR包执行程序
入口代码 import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.ne ...
- [转载] Java中动态加载jar文件和class文件
转载自http://blog.csdn.net/mousebaby808/article/details/31788325 概述 诸如tomcat这样的服务器,在启动的时候会加载应用程序中lib目录下 ...
- Java_Java中动态加载jar文件和class文件
转自:http://blog.csdn.net/mousebaby808/article/details/31788325 概述 诸如tomcat这样的服务器,在启动的时候会加载应用程序中lib目录下 ...
- Android动态加载jar/dex
前言 在目前的软硬件环境下,Native App与Web App在用户体验上有着明显的优势,但在实际项目中有些会因为业务的频繁变更而频繁的升级客户端,造成较差的用户体验,而这也恰恰是Web App的优 ...
随机推荐
- NopCommerce 在Category 显示 Store List列表
实现效果如下: 1.在前台Web的Category Menu显示 Store; 2.点击 Store 显示 Store List列表: 3.点击 列表Store 的 Company Name 进入该S ...
- 时隔一年再读到the star
The Star Arthur C. Clarke It is three thousand light-years to the Vatican. Once, I believed that spa ...
- 【三石视频教程】当FineUIPro遇到ReportViewer
FineUIPro 下个版本(v2.8.0)即将支持 ReportViewer,为此三石特别制作了一期视频教程,供大家参考. 运行效果图: 视频下载:http://pan.baidu.com/s/ ...
- 客户端Socket
导语 java.net.Socket类是JAVA完成客户端TCP操作的基础类.其他建立TCP网络连接的类(如URL,URLConnection和EditorPane)最终会调用这个类的方法.这个类本身 ...
- Linq 单表城市级联
var list = (from province in db.Areas && province.IsDel == join city in db.Areas on province ...
- com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'dd' in 'where clause'
今天在使用mysql数据库查找数据的时候报错,错误信息如下: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown co ...
- 神秘代理-Proxy
前言: 代理模式作为常见的设计模式之一,在项目开发中不可或缺.本文就尝试着揭开代理的神秘面纱,也欢迎各路人批评指正! 1.如何实现代理: [假设有个关于汽车移动(move)的计时需求]设计:Movea ...
- 关于SharpDevelop 4版本以上没有ILAsm模板项目问题
学习CIL的时候遇到的问题,记录一下. 查了一下英文网站,SharpDevelop 3 版本有ILAsm模板,但是有人运行3版本的CIL项目有问题. 说明一下SharpDevelop 4版本添加ILA ...
- 小猪cms ClassifyAction.class.php
<?php /** *语音回复 **/ class ClassifyAction extends UserAction{ public $fid; public function _initia ...
- Python从破门而入到夺门而出
MD版网盘备份: 链接: https://pan.baidu.com/s/1kVJNRSz 密码: agxt 基于<简明Python教程> 一.Python概览 1.使用PyCharm是非 ...