- 浏览: 582833 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (174)
- JBPM (3)
- WWF (0)
- JavaScript (11)
- J2EE (40)
- OperationSystem (11)
- 数据库 (12)
- CSS (1)
- Ajax (2)
- J2SE (30)
- Tools (10)
- 服务器中间件 (3)
- 异常 (0)
- Flex (5)
- jQuery (11)
- html (9)
- Ejb (1)
- HTML5 Shiv–让该死的IE系列支持HTML5吧 (1)
- Spring (9)
- Quartz (3)
- log4j (1)
- maven (1)
- cpdetector (1)
- JSON (1)
- log4jdbc (1)
- asm (8)
- FusionCharts (1)
- jqplot (1)
- highcharts (1)
- excanvas (1)
- html5 (1)
- jpcap介绍 (1)
- weblogic (3)
- URLURLClassLoader (0)
- URLClassLoader (1)
- ant (2)
- ivy (2)
- nexus (1)
- IT (0)
- LoadRunner (1)
- SCSS (1)
- ruby (1)
- webstorm (1)
- typescript (1)
- Jboss7 (1)
- wildfly (1)
- oracle (5)
- esb (0)
- dubbo (2)
- zookeeper (3)
- eclipse (1)
- Android (2)
- Studio (1)
- Google (1)
- 微信 (1)
- 企业号 (1)
- Linux (13)
- Oracle12c (1)
- Hadoop (1)
- InletexEMC (1)
- Windows (1)
- Netty (3)
- Marshalling (2)
- Protobuf (1)
- gcc (1)
- Git (1)
- GitLab (1)
- shell (2)
- java (3)
- Spring4 (1)
- hibernate4 (1)
- postgresql (1)
- ApacheServer (2)
- Tomcat (2)
- ApacheHttpServer (2)
- realvnc (1)
- redhat (7)
- vncviewer (1)
- LVS (4)
- LVS-DR (1)
- RedHat6.5 (5)
- LVS-NAT (1)
- LVS-IPTUNNEL (2)
- LVS-TUN (1)
- keepalived (2)
- yum (1)
- iso (1)
- VMware (1)
- redhat5 (1)
- ha (1)
- nginx (2)
- proguard (1)
- Mat (1)
- DTFJ (1)
- axis2 (1)
- web service (1)
- centos (1)
- random (1)
- urandom (1)
- apache (1)
- IBM (1)
- cve (1)
- 漏洞 (1)
- JDBC (1)
- DataSource (1)
- jdk (1)
- tuxedo (2)
- wtc (1)
最新评论
-
skying007:
好资料,谢谢分享给啊
FusionCharts在服务器端导出图片(J2EE版) -
cgnnzg:
大神好 可以发一份源码给我学习么 多谢了 978241085 ...
springmvc+dubbo+zookeeper -
jifengjianhao:
求源码:854606899@qq.com
springmvc+dubbo+zookeeper -
wdloyeu:
shihuan8@163.com邮箱网盘在哪,没找到。能给份源 ...
Java Socket长连接示例代码 -
huangshangyuanji:
求代码:45613032@qq.com
springmvc+dubbo+zookeeper
使用概要:
File file = new File(jar文件全路径);
URL url = file.toURL();
URLClassLoader loader = new URLClassLoader(new URL[] { url });
Class tidyClazz = loader.loadClass(所需class的含包名的全名);
笔者案例:
示例代码:
log4j.properties文件代码如下:
JarLoadUtil.java文件代码如下:
TestUrlClassLoader.java文件代码如下:
运行TestUrlClassLoader.java文件中的main方法即可。
或者在dos窗口执行ant命令后进入%PROJECT_HOME%/dist/jar目录,执行java -jar myapp-${日期}.jar
File file = new File(jar文件全路径);
URL url = file.toURL();
URLClassLoader loader = new URLClassLoader(new URL[] { url });
Class tidyClazz = loader.loadClass(所需class的含包名的全名);
笔者案例:
示例代码:
log4j.properties文件代码如下:
log4j.rootLogger=debug,appender1 log4j.appender.appender1=org.apache.log4j.ConsoleAppender log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
JarLoadUtil.java文件代码如下:
package com.shihuan.urlclassloader; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; import org.apache.commons.lang.SystemUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class JarLoadUtil { private static Logger logger = LoggerFactory.getLogger(JarLoadUtil.class); private static URLClassLoader loader = null; /* * 加载lib目录下所有jar文件,并返回相应的的URLClassLoader */ public static URLClassLoader getURLClassLoader() { if (loader == null) { String fileNames[] = listFileNames(); if (fileNames != null && fileNames.length > 0) { URL urls[] = new URL[fileNames.length]; for (int i = 0; i < fileNames.length; i++) { try { StringBuilder sb = new StringBuilder(); sb.append("file:").append(SystemUtils.FILE_SEPARATOR).append(System.getProperty("user.dir")).append(SystemUtils.FILE_SEPARATOR).append("lib"); urls[i] = new URL(sb.toString() + SystemUtils.FILE_SEPARATOR + fileNames[i]); } catch (MalformedURLException e) { logger.error("加载lib目录下jar文件出错!", e); throw new RuntimeException("加载lib目录下jar文件出错!", e); } } loader = new URLClassLoader(urls); } } return loader; } /* * 查询lib目录下的所有文件名称 */ private static String[] listFileNames() { File file_directory = new File("lib"); return file_directory.list(); } }
TestUrlClassLoader.java文件代码如下:
package com.shihuan.test; import java.net.URLClassLoader; import java.sql.Connection; import java.sql.Driver; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties; import org.logicalcobwebs.proxool.ProxoolDataSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.shihuan.urlclassloader.JarLoadUtil; public class TestUrlClassLoader { private static Logger logger = LoggerFactory.getLogger(TestUrlClassLoader.class); /** * @param args */ public static void main(String[] args) { URLClassLoader loader = JarLoadUtil.getURLClassLoader(); ProxoolDataSource ds = new ProxoolDataSource(); ds.setDriver("com.mysql.jdbc.Driver"); ds.setDriverUrl("jdbc:mysql://localhost:3306/myword"); ds.setUser("root"); ds.setPassword("12345678"); Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; Class<?> clazz = null; try { clazz = loader.loadClass(ds.getDriver()); Driver driver = (Driver)clazz.newInstance(); Properties p = new Properties(); p.put("user", ds.getUser()); p.put("password", ds.getPassword()); conn = driver.connect(ds.getDriverUrl(), p); logger.info(conn.toString()); String sql = "select id,name from mytaba"; pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); while (rs.next()) { System.out.println(rs.getInt("id") + " -- " + rs.getString("name")); } rs.close(); pstmt.close(); conn.close(); } catch (ClassNotFoundException e) { logger.error(e.getMessage(), e); } catch (InstantiationException e) { logger.error(e.getMessage(), e); } catch (IllegalAccessException e) { logger.error(e.getMessage(), e); } catch (SQLException e) { logger.error(e.getMessage(), e); } finally { try { if (rs != null) { rs.close(); } if (pstmt != null) { pstmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } }
运行TestUrlClassLoader.java文件中的main方法即可。
或者在dos窗口执行ant命令后进入%PROJECT_HOME%/dist/jar目录,执行java -jar myapp-${日期}.jar
发表评论
-
JDK中的随机数机制探究
2017-05-31 21:25 1954今天有同事问起关于JDK1.8中默认是random问题 ... -
Netty5 AIO
2015-11-25 21:18 1692工程结构图: TimeServer.java文件内容如下: ... -
JDK1.7 AIO
2015-11-24 22:32 1062工程结构图: Helper.java文件内容如下: p ... -
java JAVA_OPTS javaagent
2015-11-23 15:48 1517附件里java JAVA_OPTS -javaagent的程序 ... -
dubbo源代码调试
2015-09-24 17:06 4213今天同事要调试zookeeper+dubbo源代码,所以做了以 ... -
any+ivy的使用
2014-11-29 16:25 2111javapro-用ivy编译版本.rar文件时示例代码。 i ... -
将输出流OutputStream转化为输入流InputStream的方法
2014-07-19 22:27 27683将输出流OutputStream转化为输入流InputSt ... -
JVM启动参数大全
2014-06-11 17:19 1004http://www.blogjava.net/midstr/ ... -
Java实现aop案例
2014-04-27 11:33 1360MyPersonService.java代码如下: pac ... -
Java Socket长连接示例代码
2014-04-07 13:42 21785SocketListenerPusher.java代码如下: ... -
Java多线程文档
2013-10-06 10:56 1230附件里是Java多线程的pdf文档,写的比较好,可参考。 ... -
利用jackson包进行json字符串与pojo类之间的转换源代码
2012-10-05 19:35 1972附件里是利用jackson包进行json字符串与pojo类之间 ... -
Java Swing开发的文件内容加密
2012-09-02 14:52 1227主要是javax.swing.JFrame和java.awt. ... -
mysql和Oracle在对clob和blob字段的处理
2012-08-25 18:50 30920一、MySQL与Oracle数据库如何处理Clob,Bl ... -
用JAVA Bean 反射得到set,get方法
2011-10-17 19:39 9094/** * java反射bean的get方法 ... -
Oracle自带连接池应用
2011-08-31 13:27 2066依赖ojdbc14.jar包 OraclePooled.ja ... -
利用commons-digester3-30.jar解析xml文件
2011-08-28 14:05 3977此方式解析需要commons-beanutils-1.8.3. ... -
非阻塞的HTTP服务器
2011-08-27 21:23 1352附件里为非阻塞HTTP服务器的相关Java代码。 HttpS ... -
Java.nio
2011-08-27 21:17 1415附件里为阻塞模式、非阻塞模式、阻塞和非阻塞的混合模式代码。 ... -
Java中数字转大写货币(支持到千亿)
2011-08-17 20:20 2842public class MoneyToOther { / ...
相关推荐
Java URLClassLoader 是Java标准库中的一个类加载器,它允许我们动态地从指定的URL位置加载类和资源。这个功能在开发插件系统、热部署或者处理多种版本库的场景中非常有用。从JDK 1.2开始,`java.net.URLClassLoader...
URLClassLoader是Java提供的一种类加载器,它允许我们通过URL来加载类和资源,从而实现这一目标。本篇文章将深入讲解如何使用URLClassLoader加载C盘下的test.jar文件。 首先,了解类加载器的基本概念。在Java中,类...
在Java编程语言中,`URLClassLoader`是Java标准类加载器的一种实现,它负责从指定的URL(统一资源定位符)加载类和资源。本文将深入探讨`URLClassLoader`的工作原理,以及如何处理指定目录和JAR文件中的类加载问题。...
这里提到的“Java反序列化漏洞URLClassLoader利用1”是利用了Java中的`java.net.URLClassLoader`来远程加载并执行恶意代码的一个示例。 `URLClassLoader`是Java中的一个类加载器,它可以从指定的URL列表中加载类。...
在这个场景中,我们看到一个基于Springboot的应用程序结合了Hutool-db库,利用URLClassLoader来实现动态加载外部数据库驱动和数据池的jar包。这使得开发者可以在不重启应用的情况下更新或添加新的数据库连接和资源池...
当我们使用自定义的URLClassLoader时,尤其需要注意类加载器的生命周期管理,因为不正确的关闭可能导致打开的文件句柄无法正确释放,从而消耗系统资源。 首先,我们来了解下类加载器的工作原理。Java中的类加载器...
华为编程规范和范例是为开发者提供的一套指导原则,旨在提升代码质量、增强可读性和维护性。遵循这样的规范,可以确保团队间的代码一致性,提高软件开发的效率,并降低后期维护的成本。以下是对这份规范的详细解读:...
在Java世界中,类加载器(ClassLoader)是关键的组件之一,它负责将类的字节码文件(.class)从文件系统或网络中加载到Java虚拟机(JVM)中,使得程序能够运行。本篇文章将深入探讨ClassLoader的关系网络以及如何...
at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang....
`URLClassLoader`是Java中的一个关键类,它是`ClassLoader`的一个子类,主要用于加载来自特定URL位置的类。在"URLClass工程之间反射机制的实现"这个主题中,我们将深入探讨如何利用这两个概念在不同的工程之间实现...
### C/C++与Java安全编码实践提示与技巧 在当今高度数字化的世界中,软件安全已成为开发者面临的关键挑战之一。无论是大型企业应用还是嵌入式系统,确保代码的安全性都至关重要。本文将深入探讨C/C++及Java编程语言...
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(NativeMethod) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at sun.misc....
3. URLClassLoader:URLClassLoader是一个Java类加载器,它可以根据URL加载类或 jar 文件。在插件化编程中,URLClassLoader可以用于加载插件。 4. 插件管理:插件管理是指对插件的生命周期管理,包括插件的加载、...
在Java开发中,Spring框架是应用最广泛的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)框架之一。当我们构建一个基于Spring的应用时,经常需要从jar包中加载配置文件,...
包括commons-logging commons-beanutils commons-lang ezmorph json-lib-2.4-jdk15 commons-collections-3.2.1的jar包,可以解决 org/apache/commons/lang/exception/NestableRuntimeException的问题
at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang....
URLClassLoader c = (URLClassLoader) getClass().getClassLoader().getParent().getParent(); ``` 2. 创建一个 `URL` 对象,表示要加载的 JAR 文件的 URL。 ```java URL jar = new URL(...
at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController....
这个改进的核心在于Java 6中的`java.net.URLClassLoader`和`sun.rmi.server.LoaderHandler`类。`URLClassLoader`能够从URL加载类,而`LoaderHandler`则负责处理RMI中的类加载逻辑。通过这两者的结合,RMI可以在需要...