class.forName无法加载当前包里面的类?

萌萌哒的小丁丁 发布于 2015/06/19 21:35
阅读 1K+
收藏 0
1.我编写的测试代码如下
package com.stu.test.object;

public class TestReflection {

	public static void main(String[] args) throws ClassNotFoundException {
		// TODO Auto-generated method stub
		String str = "T";
		Class.forName(str);
	}
}

class T
{
	static{
		System.out.println("T class load.");
	}
}

配置文件设置:

3.出现的错误:

java.lang.ClassNotFoundException: T
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:259)
at com.stu.test.object.TestReflection.main(TestReflection.java:8)

4.为什么会出现这样的错误?看别人测试是正常的,我自己测试就这样了

加载中
0
fneg
fneg

class名字是这个 "com.stu.test.object.TestReflection$T"

0
萌萌哒的小丁丁
萌萌哒的小丁丁

引用来自“fneg”的评论

class名字是这个 "com.stu.test.object.TestReflection$T"

问题解决了,添加完整的包名类名。

0
霍啸林
霍啸林
可能“人家”load class的逻辑和你有差异
返回顶部
顶部