当前页面: 开发资料首页 → J2SE 专题 → 能不能从一个任意位置的java源文件将这个类load?
能不能从一个任意位置的java源文件将这个类load?
摘要: 能不能从一个任意位置的java源文件将这个类load?
如题!
100大米求助!
可以!
一般采用包(package)
例如你想写的类,把他放到自定义的包中
package defineself;
public class DefineSelf{
}
引用时采用:
import defineself.DefineSelf;
或者:
import defineself.*
如果是 .class 文件,用一个 ClassLoader 就可以了,如果是 .java 文件的话,hehe,你先想办法编译它吧,*直接* load 肯定是不行的。
TO:楼上
class文件的话,如何load?,给点代码片断
用urlclassloader
TO:楼上
如何load?,给点代码片断
以下代码未经验证 :)
URLClassLoader cl = URLClassLoader.newInstance(new URL[] { new URL("file:///path/to/your/directory") });
Class clz = cl.loadClass("mypackage.MyClass");
URLClassLoader cl = URLClassLoader.newInstance(new URL[] { new URL("file:///path/to/your/directory") });
Class clz = cl.loadClass("mypackage.MyClass");
学习
顶.
to 以上:
这样的source恐怕不行吧。
记忆中很久以前用过这样的代码,不起作用。
自己顶一下
每日一顶,直到有结果
加载一个不在类路径中的类
(C://Documents and Settings//111//) 路径当中能不能有空格我不知道,没试过,你自己试吧。
File file=new File("C://Documents and Settings//111//");
try{
URL url=file.toURL();
URL[] urls=new URL[]{url};
ClassLoader cl=new URLClassLoader(urls);
Class cls=cl.loadClass("Test");
}catch(MalformedURLException e){
}catch(ClassNotFoundException e){
}
mark!