能不能获取Java 虚拟机已加载的所有类??? 能不能在Java代码中获取Java 虚拟机已加载的所有类的Class对象??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以,获得所有的classLoader,然后用反射调用其classes的私有属性。 classes是java.lang.ClassLoader的私有属性,java.lang.ClassLoader又是abstract类型的,获取到的classLoader对象是java.lang.ClassLoader子类的对象,是无法获取classes私有属性的~~不知楼上大侠有什么办法获取classes私有属性,请给出Java代码!!! import java.lang.reflect.Field;import java.util.Vector;public class Test_ { public static void main(String[] args) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException, ClassNotFoundException { ClassLoader classLoader = Test_.class.getClassLoader(); Class cla = classLoader.getClass(); while (cla != ClassLoader.class) cla = cla.getSuperclass(); Field field = cla.getDeclaredField("classes"); field.setAccessible(true); Vector v = (Vector) field.get(classLoader); for (int i = 0; i < v.size(); i++) { System.out.println(v.get(i).getClass().getName()); } }}这样获取出来的只有java.lang.Class…… 上面错了,应该是import java.lang.reflect.Field;import java.util.Vector;public class Test_ { public static void main(String[] args) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException, ClassNotFoundException { ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); Class cla = classLoader.getClass(); while (cla != ClassLoader.class) cla = cla.getSuperclass(); Field field = cla.getDeclaredField("classes"); field.setAccessible(true); Vector v = (Vector) field.get(classLoader); for (int i = 0; i < v.size(); i++) { System.out.println(((Class)v.get(i)).getName()); } }}但是获取出来的只有Test_ 执行的时候加个启动参数:-verbose java中的方法重写,小弟新手 "=="的疑惑 JAVA里的时间函数问题 如何用java.util.jar.JarFile生成的jar 包也象jar command一样生成mainfest.mf? 《Taming Java Thread》有没有中文版? 谁做过用javamail查看收件箱的程序? jprogressbar问题----------简单 java io缓冲问题 如何在Java工程里面增加Groovy支持 cmd输入Java –version出现的不是jdk版本环境变量也配置过了 ~~~~~~对于一个Java 初学者 的一些疑问 eclipse开发web,新手指教
import java.lang.reflect.Field;
import java.util.Vector;public class Test_ {
public static void main(String[] args) throws SecurityException,
NoSuchFieldException, IllegalArgumentException,
IllegalAccessException, ClassNotFoundException {
ClassLoader classLoader = Test_.class.getClassLoader();
Class cla = classLoader.getClass();
while (cla != ClassLoader.class)
cla = cla.getSuperclass();
Field field = cla.getDeclaredField("classes");
field.setAccessible(true);
Vector v = (Vector) field.get(classLoader);
for (int i = 0; i < v.size(); i++) {
System.out.println(v.get(i).getClass().getName());
}
}
}
这样获取出来的只有java.lang.Class……
上面错了,应该是
import java.lang.reflect.Field;
import java.util.Vector;public class Test_ {
public static void main(String[] args) throws SecurityException,
NoSuchFieldException, IllegalArgumentException,
IllegalAccessException, ClassNotFoundException {
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
Class cla = classLoader.getClass();
while (cla != ClassLoader.class)
cla = cla.getSuperclass();
Field field = cla.getDeclaredField("classes");
field.setAccessible(true);
Vector v = (Vector) field.get(classLoader);
for (int i = 0; i < v.size(); i++) {
System.out.println(((Class)v.get(i)).getName());
}
}
}但是获取出来的只有Test_