java 如何使用反射 加载指定路径下的类文件(.class)
3个回答
展开全部
简单写了下,不知道是不是你要的。
import java.lang.reflect.Method;
import com.sun.org.apache.bcel.internal.util.ClassLoader;
public static void main(String[] args) throws Exception {
ClassLoader classLoader = new ClassLoader( new String[] { "D:\\Cheiron\\Test\\bin" });//类根路径
Class<?> cl = classLoader.loadClass("org.apache.commons.lang.StringUtils");//类名
Method method = cl.getMethod("split", String.class, String.class);//类的方法
System.out.println(method.getName());//打印方法名
String[] arrS = (String[]) method.invoke(null, "a,a", ",");//调用方法
for (String string : arrS) {//打印返回值
System.out.println(string);
}
}
import java.lang.reflect.Method;
import com.sun.org.apache.bcel.internal.util.ClassLoader;
public static void main(String[] args) throws Exception {
ClassLoader classLoader = new ClassLoader( new String[] { "D:\\Cheiron\\Test\\bin" });//类根路径
Class<?> cl = classLoader.loadClass("org.apache.commons.lang.StringUtils");//类名
Method method = cl.getMethod("split", String.class, String.class);//类的方法
System.out.println(method.getName());//打印方法名
String[] arrS = (String[]) method.invoke(null, "a,a", ",");//调用方法
for (String string : arrS) {//打印返回值
System.out.println(string);
}
}
展开全部
Class cls = Class.forName(name);//获取测试案例的类
Object obj = cls.newInstance();//创建该类实例
其中name就是指定路径下的类文件,记住必须写包名。
如name = test.HelloWord即可.
Object obj = cls.newInstance();//创建该类实例
其中name就是指定路径下的类文件,记住必须写包名。
如name = test.HelloWord即可.
追问
类文件不在项目工程下!何来包名?
追答
如果只有.class文件的话,不好意思,我不知道怎么用java使用反射,不过建议你可以去下载阅读有关字节码文件的软件"ClassLib",用法和下载在http://wenku.baidu.com/view/23692b60ddccda38376baf4f.html可以看到。其他的我就帮不上什么忙了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Class.forName(包名加类名)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询