at java.net.urlclassloader.findclass_如何使用URLClassLoader加载* .class文件?
我在玩反射,我想做点东西来加载一个类并打印该类中所有字段的名称。我制作了一个小型的hello world类型的类来检查一些东西:
kent@rat:~/eclipsews/SmallExample/bin$ ls
IndependentClass.class
kent@rat:~/eclipsews/SmallExample/bin$ java IndependentClass
Hello! Goodbye!
kent@rat:~/eclipsews/SmallExample/bin$ pwd
/home/kent/eclipsews/SmallExample/bin
kent@rat:~/eclipsews/SmallExample/bin$
基于以上所述,我得出两个结论:
它存在于/home/kent/eclipsews/SmallExample/bin/IndependentClass.class
有用!(因此它必须是可以由类加载器加载的正确的.class文件)
然后使用反射的代码:(标记导致异常的行)
import java.lang.reflect.Field;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
public class InspectClass {
@SuppressWarnings("unchecked")
public static void main(String[] args) throws ClassNotFoundException, MalformedURLException {
URL classUrl;
classUrl = new URL("file:///home/kent/eclipsews/SmallExample/bin/IndependentClass.class");
URL[] classUrls = { classUrl };
URLClassLoader ucl = new URLClassLoader(classUrls);
Class c = ucl.loadClass("IndependentClass"); // LINE 14
for(Field f: c.getDeclaredFields()) {
System.out.println("Field name" + f.getName());
}
}
}
但是当我运行它时,我得到:
Exception in thread "main" java.lang.ClassNotFoundException: IndependentClass
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.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at InspectClass.main(InspectClass.java:14)
我的问题:
上面我在做什么错?我如何解决它?
有没有办法加载几个类文件并对其进行迭代?
at java.net.urlclassloader.findclass_如何使用URLClassLoader加载* .class文件?相关推荐
- java加载properties文件的几种方式,java高级面试笔试题
我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...
- java class文件 代码_java_基础——用代码编译.java文件+加载class文件
java_基础--用代码编译.java文件+加载class文件 java_基础--用代码编译.java文件+加载class文件 [简单编译的流程] package com.zjm.www.test; ...
- Java Class的热替换 自定义ClassLoader加载.class
本文是java热替换的实验,参考了 Java 类的热替换 -- 概念.设计与实现 http://www.ibm.com/developerworks/cn/java/j-lo-hotswapcls/i ...
- Java 错误: 找不到或无法加载主类,问题集合
正确编译命令: javac Hello.java 正确运行命令: java Hello 错误1:H:\code>java Hello.java 错误: 找不到或无法加载主类 Hello.ja ...
- java虚拟机及加载class文件的原理机制
2019独角兽企业重金招聘Python工程师标准>>> (点击获取更多资料的下载) java 虚拟机 2007年4月23日,14:18:00 | chenweicai ...
- java错误 找不到或无法加载主类
java:错误: 找不到或无法加载主类 1.确定JDK版本 因为随着时间的改变,JDK本身也伴随着更改和变化,在解决这个问题前,我们要确定一下jdk的版本,比较老的版本有老的版本的解决方法,比较新 ...
- 常见Java面试题之JVM加载class文件的原理机制
JVM加载class文件的原理机制 JVM中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java中的类加载器是一个重要的Java运行时系统组件,它负责在运行时查找和装入类文件中的 ...
- java 类加载生命周期_Java类的加载与生命周期
一.概要: 类的生命周期从类的 加载.连接.初始化 开始,到类的 卸载结束: 二.几个阶段: 加载:查找并加载类的二进制数据.(把类的.class文件的二进制数据读入内存,存放在运行时数据区的方法区: ...
- java文件读入原理_描述一下JVM加载class文件的原理机制
1.JVM 简介 JVM 是我们Javaer 的最基本功底了,刚开始学Java 的时候,一般都是从"Hello World "开始的,然后会写个复杂点class ,然后再找一些开源 ...
- java类 连接时机_java类的加载时机
类加载 它直接表现出来的代码应该是 ClassLoader.getSystemClassLoader().loadClass("com.my.test.AbcClass").所以具 ...
最新文章
- zen3架构_AMD Zen3架构处理器的L3缓存或将翻倍到64MB
- SpringMVC Ueditor1.4.3 未找到上传数据
- SAP内向交货详解 Details on SAP inbound delivery
- COBBLER无人值守安装-----已用真实服务器测试
- 实录:menu.1st配置错误导致从多路径启动失败
- python样本不均衡_使用Python中的smote处理正负样本之间的不平衡,python,实现,失衡,问题...
- linux之gdb基本调试命令和使用总结
- qt中QTreeWidget控件的使用
- appium+python自动化57-chromedriver与chrome版本
- Linux 常用命令随笔(二)
- NGINX+PHP+ZABBIX,推荐
- python二次开发ug_CAD二次开发(UG/Proe/其他) - 随笔分类 - 白途思 - 博客园
- Python 中使用 ImageJ 详细教程
- 模拟CMOS集成电路放大器总结(1)
- apache的IO包中的FileUtils方法的使用
- 2018华为软件精英挑战赛经验(一)
- Docker知识点总结
- Python 运维自动化之服务器信息采集
- 单枪匹马年赚一个亿?靠的是任务管理做得漂亮!
- 集群部署时的分布式 Session 如何实现?