如何动态加载war包里的web-inf/classes目录里的class文件? 如何动态加载war包里的web-inf/classes目录里的class文件? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ClassLoader classLoader = ClassLoader.getSystemClassLoader(); //or get the you own classloader try{ classLoader.loadClass("com.you.class.XXX"); }catch(ClassNotFoundException e){ e.printStackTrace() ; } 我测试了一下public static void main(String[] args) throws Exception {String classPath = null;File filePath = new File("C:/test/outweb.war/WEB-INF/classes");ClassLoader classLoader = new URLClassLoader(new URL[] { filePath.toURL() });Class beanClass = null;try { beanClass = classLoader.loadClass("cn.com.mycompany.project.bean.MyBean");} catch (ClassNotFoundException e) { e.printStackTrace();}System.out.println(beanClass.getName());报错:ClassNotFoundException;请问应该如何修改? 本来就是动态加载的,什么都不用做呀!Class.forName就可以 to treeroot(旗鲁特) :我测试了一下,但是出错了public static void main(String[] args) throws Exception {String classPath = null;File filePath = new File("C:/test/outweb.war/WEB-INF/classes");ClassLoader classLoader = new URLClassLoader(new URL[] { filePath.toURL() });Class beanClass = null;try { beanClass = classLoader.loadClass("cn.com.mycompany.project.bean.MyBean");} catch (ClassNotFoundException e) { e.printStackTrace();}System.out.println(beanClass.getName());报错:ClassNotFoundException;请问应该如何修改啊? 本来就是动态加载的,tomcat已经实现了类似你写的代码,你不用管它,连class.forname都不用!你那个classes下的目录结构可能有问题吧。。 我可能没有说清楚,我指的不是在服务器环境下;就是一个outweb.war包放在C:/test/目录下,没有任何服务器环境;如何用ClassLoader去获得outweb.war包里web-inf/classes目录里的的类? to treeroot(旗鲁特):outweb.war是打包好的war文件,而且我确定我的文件存在;是不是ClassLoader只能加载jar文件里的class文件,而不能加载war文件里的web-inf/classes的class文件? classpath只能是jar(zip)文件或者一个目录你这样当然不行,如果你解压war后就可以了File filePath = new File("C:/test/outweb.war/WEB-INF/classes");这个东西并不是一个不存在的呀! 排序问题(进来看看吧) 散個分 請教下- log4j 為啥叫這個名字呢? 高手帮我把java转成VB(谢谢了,急用) clone()方法 各位大虾,有谁能用JAVA取得本机的网卡地址的啊?小弟253了 同一个包里面的类如何引用呢? 关于JAVA@Override注解的一个问题 java中接口的用法,详细问题请进来看看 在jbuilder中的一个包内多个FRAME如何相互访问? 请问用java写的程序,如一个java写的frame如何用jni技术编译成dll.而在windows下运行. 菜鸟问:简单hello程序运行不成功? 多媒体(急)
//or get the you own classloader
try{
classLoader.loadClass("com.you.class.XXX");
}catch(ClassNotFoundException e){
e.printStackTrace() ;
}
public static void main(String[] args) throws Exception {
String classPath = null;
File filePath = new File("C:/test/outweb.war/WEB-INF/classes");
ClassLoader classLoader = new URLClassLoader(new URL[] { filePath.toURL() });
Class beanClass = null;
try {
beanClass = classLoader.loadClass("cn.com.mycompany.project.bean.MyBean");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println(beanClass.getName());报错:ClassNotFoundException;
请问应该如何修改?
Class.forName就可以
我测试了一下,但是出错了
public static void main(String[] args) throws Exception {
String classPath = null;
File filePath = new File("C:/test/outweb.war/WEB-INF/classes");
ClassLoader classLoader = new URLClassLoader(new URL[] { filePath.toURL() });
Class beanClass = null;
try {
beanClass = classLoader.loadClass("cn.com.mycompany.project.bean.MyBean");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println(beanClass.getName());报错:ClassNotFoundException;
请问应该如何修改啊?
就是一个outweb.war包放在C:/test/目录下,没有任何服务器环境;
如何用ClassLoader去获得outweb.war包里web-inf/classes目录里的的类?
outweb.war是打包好的war文件,而且我确定我的文件存在;
是不是ClassLoader只能加载jar文件里的class文件,而不能加载war文件里的web-inf/classes的class文件?
你这样当然不行,如果你解压war后就可以了
File filePath = new File("C:/test/outweb.war/WEB-INF/classes");
这个东西并不是一个不存在的呀!