java.lang.ClassNotFoundException:org.jooq.util.JavaGenerator

时间:2018-06-11 08:27:10

标签: java sql code-generation jooq

从jOOQ 3.10升级到3.11后,我遇到以下异常:

Caused by: java.lang.ClassNotFoundException: org.jooq.util.JavaGenerator
    at java.net.URLClassLoader.findClass (URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass (ClassLoader.java:357)
    at org.jooq.codegen.GenerationTool.loadClass (GenerationTool.java:819)
    at org.jooq.codegen.GenerationTool.run (GenerationTool.java:329)
    at org.jooq.codegen.GenerationTool.generate (GenerationTool.java:220)
    at org.jooq.codegen.maven.Plugin.execute (Plugin.java:195)

这是什么原因?这个班级被删除了吗?

2 个答案:

答案 0 :(得分:2)

在较旧的Java版本中重用org.jooq.util包名称

较早的jOOQ版本在jooqjooq-meta / jooq-codegen工件之间存在包名冲突,这些工件都重用了org.jooq.util包。这在Java的旧版本中是可以的,直到Java 8。

Java 9 / JPMS的正向兼容性

在JPMS下,从Java 9开始,在模块路径上运行代码时不再允许这样做(与传统类路径相反)。对于转发兼容性when jOOQ will be modularisedjooq-metajooq-codegen中的违规软件包已重命名: https://github.com/jOOQ/jOOQ/issues/7419

以下代码生成模块中的包现在具有以下前缀:

  • jooq-metaorg.jooq.meta
  • jooq-meta-extensionsorg.jooq.meta.extensions
  • jooq-codegenorg.jooq.codegen
  • jooq-codegen-mavenorg.jooq.codegen.maven

jooq模块(运行时)未更改其包名称。

另见

答案 1 :(得分:0)

全部替换

org.jooq.util. 

org.jooq.meta.

大功告成。