能不能给Tomcat添加一个新的Classpath
我的一个程序,动态的编译出新的class字节码,然后保存到文件系统中,如保存在tomcat工程目录的tempClasses目录下,这个目录并不在tomcat识别的classpath下,有没有办法把这个目录设置到Tomcat的classpath里?
例如文件结构如下:
tomcat/webabbs/myproject/tempClasses
|--NewClass1.class
|--NewClass2.class
然后我要在程序中使用Class.forName把这些class加载,运行他们。
1. 重写Tomcat的WebappClassLoader,没成功,加载这些类引用到的其他类时,说不能加载。还有一个问题,使用这种方式即使能加载了,但是一换服务器,就得实现一个新的ClassLoader.
2. 现在把这些类文件都放在/WEB-INF/classes 目录下,然后加载运行,成功。但是这有个问题,在classes目录下生成了很多的class文件,看到乱七八糟的,很不好。也想过使用打包的方法,但是因为这些生成的类文件是从一种医学的程序语言转换成Java语言,转换工具是另一个工程做好的,默认的代码没有打包,所以这个方式暂时不去使用。
单机的时候没问题,一到网络环境中问题就来了。