站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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!


↑返回目录
前一篇: 我分别试过getString(),getInt(),getLong(),都不行,getObject()取出来的东西,直接输入是:null。用getBytes()取出来长度为15,少一位
后一篇: struts框架下上传文本文件,为什么写了两次?急急急,大家来看指点一下啊!