我的一个程序,动态的编译出新的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语言,转换工具是另一个工程做好的,默认的代码没有打包,所以这个方式暂时不去使用。单机的时候没问题,一到网络环境中问题就来了。

解决方案 »

  1.   

    现在强制弄到系统的classpath里了,呵呵。
      

  2.   

    普通的设置classpath方法,
    export CLASSPATH="$CLASSPATH:/Users/Biao/Documents/Workspace/Tomcat.6.0.20/webapps/mlm/bytecode"
      

  3.   

    在安装目录下进入conf文件夹,打开里面的server文件,在<context>里面设置路径。参数:docBase:应用程序的路径或war文件的路径path:web应用程序的url前缀
      

  4.   

    编辑catalina.batset CLASSPATH="c:\......"