@RequestMapping("/testJar")
public @ResponseBody String exteriorJar(int ys, int csd,int jg,int sf,int yf,int sd){
String result = "error";
//从数据库中读取算法类
String sql = "select EXTERIOR from T_EXTERIOR where id=2";
InputStream ins = null;
try{
Connection con = jdbcTemplate.getDataSource().getConnection();
Statement ps = con.createStatement();
ResultSet rs = ps.executeQuery(sql);
while(rs.next()){
Blob blob = rs.getBlob("EXTERIOR");
ins = blob.getBinaryStream();
}
File file = new File("test.jar");
OutputStream os = new FileOutputStream(file);
byte[] bt = new byte[1024];
int size = 0;
while((size=ins.read(bt))!=-1){
os.write(bt,0,size);
}
os.flush();
os.close();
ins.close(); URLClassLoader loader = new URLClassLoader(new URL[]{new URL("file:"+file.getAbsolutePath())});
Class cs = loader.loadClass("com.tf.userApp.bean.Exterior");
Object obj = cs.newInstance(); Method[] methods = obj.getClass().getMethods();
for(Method method : methods){
if(method.getName().equals("add")){
Class[] css = method.getParameterTypes();
Object[] params = new Object[css.length];
params[0] = ys;
params[1] = csd;
params[2] = jg;
params[3] = sf;
params[4] = yf;
params[5] = sd;
/**
int index = 0;
for(Class cs : css){
if(String.class == cs){
params[index++] = "String val is :" + index;
}
}*/
Object rt = method.invoke(obj, params);
if(rt.getClass() == Integer.class){
result = String.valueOf((Integer)rt);
}else if(rt.getClass()==String.class){
result = (String)rt;
}
}
}
}catch (Exception e) {
e.printStackTrace();
} return result;
}

java手动加载jar的更多相关文章

  1. java动态加载jar文件

    public static void main(String[] args) throws IllegalAccessException, IllegalArgumentException, Invo ...

  2. JAVA动态加载JAR包的实现

    如何动态的加载这些驱动!不可能把所有的数据库驱动都集成到JAR包中吧?!于是动态加载驱动的JAR包就产生了!其实这些在做系统基础代码时,经常用到,只是一般我们没有机会去搞而已. 动态加载JAR包,使用 ...

  3. Java动态加载jar及class文件

    经常碰到需要动态加载jar及class文件的场景.Java类由于需要加载和编译字节码,动态加载class文件较为麻烦,但JDK仍提供了一整套方法来动态加载jar文件和class文件. 一.动态加载ja ...

  4. tomcat/Java指定加载jar包的路径

    背景:部署的web站点,应用默认加载工程的/webapps/工程名/WEB-INF/lib下的jar包   但是我需要提供一个和web工程没关系的的jar包管理目录   解决方法: 执行java方法时 ...

  5. java动态加载jar包,并运行其中的类和方法

    动态加载jar包,在实际开发中经常会需要用到,尤其涉及平台和业务的关系的时候,业务逻辑部分可以独立出去交给业务方管理,业务方只需要提供jar包,就能在平台上运行. 下面通过一个实例来直观演示: 第一: ...

  6. JAVA动态加载JAR

    // 生成JAR包D:\TestClass.jar package hand.java.loadjar; public class TestClass { private String sayHell ...

  7. Java动态加载JAR包

    参考代码: package org; import java.io.File; import java.net.URL; import java.net.URLClassLoader; import ...

  8. JAVA动态加载JAR包执行程序

    入口代码 import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.ne ...

  9. 27 Java动态加载第三方jar包中的类

    我加载的方法是://参数fileName是jar包的路径,processorName 是业务类的包名+类名public static A load(String fileName, String pr ...

随机推荐

  1. 使用Facade模式更新库存、确认订单、采取打折、确认支付、完成支付、物流配送

    Facade模式对外提供了统一的接口,而隐藏了内部细节.在网上购物的场景中,当点击提交订单按钮,与此订单相关的库存.订单确认.折扣.确认支付.完成支付.物流配送等都要做相应的动作.本篇尝试使用Faca ...

  2. [转载] C# matlab联合编程简介

    原作者  文月 主要操作说明: 1. 找到matlab安装目录下的MCRInstaller.exe安装 MCRInstaller.exe 在安装目录下的 ..\MATLAB7\toolbox\comp ...

  3. 借助LVS+Keepalived实现负载均衡

    原文地址:http://www.cnblogs.com/edisonchou/p/4281978.html 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了 ...

  4. 转 如何在IOS设备中去掉屏幕上的status bar

    引入如何在IOS设备中去掉屏幕上的status bar,即:不显示设备上方的[网络.时间.电池??]条?操作方法一:在-info.list项目文件中,加上“Status bar is initiall ...

  5. 解决TextView排版混乱或者自动换行的问题

    其实在TextView中遇到排版自动换行而导致混乱不堪的情况是非常常见的,而且导致这种问题产生的原因就是英文和中文混合输入,半角字符和全角字符混合在一起了.一般情况下,我们输入的数字.字母以及英文标点 ...

  6. mysql批量insert速度超慢

    在进行大批量数据insert的时候,我使用的是hibernate的进行save,而数据库采用mysql.但是在save的时候,速度很慢.         刚开始以为是MYSQL进行DNS解析的问题,于 ...

  7. Java遍历Map键、值。获取Map大小的方法

    Map读取键值对,Java遍历Map的两种实现方法 第一种方法是根据map的keyset()方法来获取key的set集合,然后遍历map取得value的值 import java.util.HashM ...

  8. 最大熵,熵,MLE的解释,还行

    这篇文章: https://blog.csdn.net/jiaoyangwm/article/details/81276921

  9. 第四章 mybatis批量insert

    批量插入sql语句: INSERT INTO table (field1,field2,field3) VALUES ('a',"b","c"), ('a',& ...

  10. iOS开发-UIApplication和App启动状态

    UIApplication简单从字面上了解就是应用程序,开发的时候有的时候会根据需要调用其中的方法,看起来不起眼,实际在iOS开发UIApplication提供了iOS程序运行期间的控制和协作工作.每 ...