我在机器随便的一个地方有一个
Class文件。
比如:E:/abc/a/b/c/MyClass.class
它的全名是a.b.c.MyClass
请问我怎么在我的程序里得到MyClass的对象啊。
我的程序的地址比如说是在:D:/workspace/test/Test.class前提只能用java代码实现,因为一切都是动态的。
Class文件。
比如:E:/abc/a/b/c/MyClass.class
它的全名是a.b.c.MyClass
请问我怎么在我的程序里得到MyClass的对象啊。
我的程序的地址比如说是在:D:/workspace/test/Test.class前提只能用java代码实现,因为一切都是动态的。
如果路径和类名都不知道那就只能JNDI了
在强转
Class.forName("classname").newInstance()
现在的问题是这个"classname"的内容是没有被配置在classpath中的。
就是说你这么写不对Class.forName("a.b.c.MyClass").newInstance()
因为文件在E:/abc文件夹中。但是classpath当然不知道他的存在了。
怎么在java程序中动态的完成。类的加载。
可以从计算机包括网络上得到对象。
动态修改之后,再用Class.forName来加载
classpath+=指定新的class根路径(比如某个jar或者目录);
System.getProperties().put("java.class.path",classpath);Class.forName(...);