动态编译问题记录

需求: 根据用户行为数据动态生成规则类压进另一个任务jar包中

步骤:

  • 字符串拼接java代码
  • 将java代码字符串编译成.class文件输出到磁盘
  • 将.class文件压进jar包

本地测试无异常,扔到服务器上出错

第二步遇到问题:

  1. 编译失败,无法找到依赖。
    解决方法: 将jar包解压后再执行
  2. 编译失败,无法找到tools.jar,由于tools.jar是jdk自带的依赖,本地测试时是在idea里添加的, 打包时没打进去
    解决方法:

将tools.jar install到maven本地仓库

mvn install:install-file -Dfile=/c/Program\ Files/Java/jdk1.8.0_151/lib/tools.jar -DgroupId=com.sun.tools -DartifactId=tools -Dversion=1.8 -Dpackaging=jar

再通过pom文件引入

                  <dependency>
                        <groupId>com.sun.tools</groupId>
                        <artifactId>tools</artifactId>
                        <version>1.8</version>
                  </dependency>
posted @ 2020-11-25 15:08  爆炸峰  阅读(87)  评论(0编辑  收藏  举报
Document