- 浏览: 740011 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (194)
- Webservice (6)
- ExtJs (2)
- Work Summary (4)
- CoreJava (51)
- Spring (10)
- EJB (5)
- struts1.x (3)
- C/C++ (5)
- DatabaseManager (19)
- Hibernate (5)
- Crytology (1)
- Web Server (5)
- Software Manager (5)
- WebUi (39)
- Web page (2)
- android (5)
- struts2 (12)
- Java 导出 Excel (1)
- Spring 与struts2 和Hibernate 4.0注解解决方安 (1)
- Dwr (1)
- maven3 (4)
- Windows (3)
- 表格头部信息不动使用Jquery 外部框架 (1)
- 软件行业动态 (1)
- mybatis (1)
- C# (3)
- MySQL (4)
最新评论
-
July01:
最近了解到一款StratoIO打印控件,功能如下:1、Html ...
LODOP插件开发 -
an52036:
u010980147 写道您的代码确实能生成条形码,但是打印出 ...
Java 条形码生成(一维条形码) -
di1984HIT:
学习了,很好~~
Ant 打包war 生成文件内容build.xml -
lhb319lhb:
如果 ajax(jquery)更新了 iframe 的 src ...
jquery 修改iframe src -
calosteward:
感谢楼主,除了一维条码,有没有相关二维码的资源呢?______ ...
Java 条形码生成(一维条形码)
1.java 读取类文件并加载到JVM中
package com.test.dog.util; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; /** * * @author LiuQing * @see 类安全加载类 * @version 1.0 * @date 2011-10-01 * */ public class SecurityClassLoader extends ClassLoader { private String rootDir; /** * @see 重写find 单类加载器 * @param name String * @return Class<?> */ @Override protected Class<?> findClass(String name) throws ClassNotFoundException { byte[] clazzData = this.getData(name); if (clazzData == null) { throw new ClassNotFoundException(); } else { return this.defineClass(name, clazzData, 0, clazzData.length); } } /** * @see 加载数据类型 * @param clazzName String * @return byte[] */ public byte[] getData(String clazzName) { String filePath = this.getPath(clazzName); InputStream input = null; ByteArrayOutputStream byteOutput = null; try { input = new FileInputStream(filePath); byteOutput = new ByteArrayOutputStream(); int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; while (true) { int len = input.read(buffer); if (len == -1) { break; } byteOutput.write(buffer, 0, len); } } catch (Exception e) { e.printStackTrace(); } return byteOutput.toByteArray(); } /** * 设置类加载路径 * @param clazzName String * @return String */ public String getPath(String clazzName) { return this.rootDir + File.separator + clazzName.replace('.', File.separatorChar) + ".cer"; } /** * @see 设置加载类路 * @return String */ public String getRootDir() { return rootDir; } /** * @see 设置加载类路 * @param rootDir String */ public void setRootDir(String rootDir) { this.rootDir = rootDir; } }
2.测试例子
SecurityClassLoader s1 = new SecurityClassLoader();
s1.setRootDir("D:\\jdk1.6.0_13\\jdk1.6.0_13\\bin"); Class<?> clazzOne = s1.loadClass("comtest.usbm.Test"); Object obj = clazzOne.newInstance(); System.out.println(clazzOne + " One"); //定义参数类型 Class<?>[] parameters = new Class[]{String.class}; Method showMethod = clazzOne.getDeclaredMethod("show", parameters); //定义传入参数值 Object[] objs = new Object[]{"LiuQing"}; showMethod.invoke(obj,objs); //加载器2 SecurityClassLoader s2 = new SecurityClassLoader(); s2.setRootDir("D:\\jdk1.6.0_13\\jdk1.6.0_13\\bin\\comtest\\usbm"); Class<?> clazzTwo = s2.loadClass("comtest.usbm.Test"); Object objTwo = clazzTwo.newInstance(); System.out.println(obj.toString()); System.out.println(objTwo.toString()); System.out.println(clazzTwo + " Two"); //定义参数类型 Class<?>[] parameters1 = new Class[]{String.class}; Method showMethod1 = clazzTwo.getDeclaredMethod("show", parameters1); //定义传入参数值 Object[] objs1 = new Object[]{"LiuQing"}; showMethod1.invoke(objTwo,objs1);
发表评论
-
ubuntu 安装JDK失败
2020-09-01 20:40 0文件/etc/apt/sources.list是一个普通可 ... -
ubuntu完美卸载JDK
2020-09-01 12:31 760要删除 OpenJDK (如果已安装的话)。首先,检查是安装 ... -
freemark 基本语法
2018-03-22 23:19 893reemarker的基本语法及入门基础 一、freem ... -
linux 新增硬盘分区并挂载
2016-06-02 12:45 1701运行fdisk -l 查看计算机对应的硬盘信息 Disk ... -
JasperReports打印图片
2016-05-21 22:20 2967long start = System.currentTim ... -
CAS 客户端与一般Web项目集成
2015-07-04 16:20 16201这一段时间有同事在问CAS -Client的问题这里就基本问 ... -
CAS-项目集成问题整理
2015-07-04 15:24 1412javax.net.ssl.SSLHandshakeExc ... -
CAS 与Tomcat 集成
2015-06-29 15:16 3758第一节:生成证书 第一步:生成keystore注意【cn= ... -
logback 日志配置生成当天志并分大小
2015-03-26 17:00 1651<?xml version="1.0&quo ... -
Mysql锁表问题
2015-03-26 09:57 9161)查询锁表问题 show open tables ... -
excel 导出文件中文问题
2015-03-24 23:39 1756package com.tzdr.common.utils; ... -
HttpURLConnection Post
2015-02-04 17:08 949/** * Http访问 * @param ht ... -
java获取classpath路径
2015-02-01 11:03 7827ClassLoader 提供了两个方法用于从装载的类路径中取 ... -
Con 表达式
2014-12-28 13:00 2924cron表达式详解 Cron表 ... -
Spring3 +JPA
2014-12-25 19:23 12551)META-INF/persistence.xml T ... -
Hessian调用方法
2014-09-26 12:45 6152package com.huashun.api. ... -
Freemark的使用
2014-06-09 15:27 994freemark 解释 package com.pa ... -
J2EE安装问题
2014-03-20 16:39 982安装J2EE的SDK报错:could ... -
Applet 有包配置及开发HeloWorldl
2013-06-13 08:48 12101.开发代码 package com.newt ... -
Jetty嵌入式服务器端开发
2013-06-07 08:09 10871.服务器代码 package com.newto ...
相关推荐
理解ClassLoader的工作原理以及如何定制它,对于深入学习Java的运行机制和进行高级应用开发具有重要意义。本篇文章将深入探讨Java ClassLoader的内部工作,并通过一个具体的实例来展示如何定制自己的ClassLoader。 ...
理解ClassLoader的工作原理对于优化Java应用程序性能以及解决类冲突等问题具有重要意义。 一、ClassLoader的基本概念 Java程序由多个类组成,每个类对应一个.class文件。当程序运行时,ClassLoader根据需要动态...
这篇博文(虽然链接不可用)可能深入探讨了ClassLoader的工作原理及其在Java应用程序中的应用。 ClassLoader分为三个主要层次:Bootstrap ClassLoader、Extension ClassLoader和AppClassLoader(也称为System ...
### Java ClassLoader与ClassPath详解 #### 一、概述 在Java编程中,类加载机制是十分关键的一个环节。类加载器(`ClassLoader`)负责将编译后的`.class`文件加载到Java虚拟机(JVM)中执行,而类路径(`ClassPath...
### Java ClassLoader原理详解 #### 摘要 本文探讨了Java虚拟机(JVM)中的一个重要特性:动态类加载(Dynamic Class Loading)。这一机制为Java平台提供了强大的能力,允许在运行时安装软件组件,例如从网络下载...
Java ClassLoader机制是Java运行时环境中的核心组件之一,它负责加载类到JVM(Java虚拟机)中,使得程序能够执行。理解ClassLoader的工作原理对于优化应用性能、处理类加载问题以及实现自定义加载器至关重要。 首先...
总结,Java ClassLoader是Java平台的关键特性,理解其工作原理和应用场景对于优化系统性能、设计可扩展的系统至关重要。通过本教程,读者应能掌握如何利用ClassLoader实现动态加载、安全隔离和版本控制等功能,提升...
### Java ClassLoader理解详解 #### 一、引言 在商业流行的编程语言中,Java以其独特的运行机制脱颖而出:它在Java虚拟机(JVM)上运行。这意味着编译后的程序采用一种特殊的、与平台无关的格式,而不是针对特定...
通过对Java ClassLoader的深入了解,我们可以更好地理解Java类的加载机制以及如何通过自定义ClassLoader来满足特定的应用需求。淘宝网的成功实践为我们提供了宝贵的参考案例,展示了ClassLoaders在实际项目中的重要...
1. 类加载器的层次结构:在Java中,类加载器形成了一个树形结构,通常由Bootstrap ClassLoader(引导类加载器)、Extension ClassLoader(扩展类加载器)和App ClassLoader(应用程序类加载器)组成。Bootstrap加载...
### Java ClassLoader (类加载器)详解 #### 一、教程提示 如果你正在查看这份文档,在线版中你可以点击下面的任何主题直接跳转到相应的部分。 1. **教程提示** 2. **介绍** 3. **类加载器结构** 4. **编译类加载...
在深入探讨Java类加载器(ClassLoader)之前,我们首先需要了解它在Java运行时系统中的核心作用。类加载器是Java虚拟机(JVM)的一个关键组成部分,负责查找、加载和链接类文件到JVM中。它的存在使得Java应用程序...
**java应用程序类加载器(ClassLoader for java Application)**: 当我们创建一个Java应用程序时,比如通过`java MainClass`命令启动,实际上是由应用程序类加载器来执行的。它查找并加载包含主类(Main-Class ...
Java ClassLoader是Java虚拟机(JVM)的重要组成部分,它负责加载类到JVM中运行。理解ClassLoader的工作原理对于深入学习Java以及进行JVM优化、插件开发等高级技术至关重要。下面将详细介绍Java ClassLoader的基本...
Java中的类加载器(ClassLoader)是Java虚拟机(JVM)的一个重要组成部分,它负责将类的.class文件从文件系统或者网络中加载到内存中,并转换为对应的Class对象。类加载器的工作流程主要包括加载、验证、准备、解析...
《深入理解Java类加载器:基于classloader-playground开源项目》 在Java世界里,类加载器(ClassLoader)是理解JVM工作原理的关键一环。它负责将字节码文件(.class)从磁盘、网络或其他数据源加载到内存,并转化为...
### Java ClassLoader 详解 #### 一、ClassLoader 概述 在 Java 语言中,类加载器(ClassLoader)是 Java 运行时环境的核心组成部分之一,它负责将编译后的 `.class` 文件加载到 JVM 中执行。从 JDK 1.0 开始,...
Java 中的 ClassLoader 提供了一系列的方法来完成加载类的这个职责,例如加载 Java 应用所需的资源,如图像文件和配置文件等。ClassLoader 还负责加载 Java 应用程序所需的类文件,以便在程序运行时可以正确地调用...