gpt4 book ai didi

java - Linux 上的 JOOQ codegen 失败,java.lang.ClassNotFoundException : org. postgresql.Driver

转载 作者:行者123 更新时间:2023-11-29 12:41:02 25 4
gpt4 key购买 nike

今天我一直在尝试为我的新项目生成 jooq 类,但我一直收到这个错误:

Apr 24, 2018 1:39:11 PM org.jooq.tools.JooqLogger info
INFO: Initialising properties : jooq-configuration.xml
Apr 24, 2018 1:39:11 PM org.jooq.tools.JooqLogger error
SEVERE: Cannot read jooq-configuration.xml. Error : org.postgresql.Driver
java.lang.ClassNotFoundException: org.postgresql.Driver
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.jooq.util.GenerationTool.loadClass(GenerationTool.java:704)
at org.jooq.util.GenerationTool.run(GenerationTool.java:259)
at org.jooq.util.GenerationTool.generate(GenerationTool.java:203)
at org.jooq.util.GenerationTool.main(GenerationTool.java:175)

所以我将我的 jooq 库和我的 postgresql jdbc 驱动程序更新到最新版本,但错误仍然存​​在。

现在这是我的 jooq-configuration.xml 文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
<!-- Configure the database connection here -->
<jdbc>
<driver>org.postgresql.Driver</driver>
<url>jdbc:postgresql://localhost/vodic</url>
<user>postgres</user>
<password>local</password>

<!-- You can also pass user/password and other JDBC properties in the optional properties tag: -->
<properties>
<property><key>user</key><value>postgres</value></property>
<property><key>password</key><value>local</value></property>
</properties>
</jdbc>

<generator>
<database>
<!-- The database dialect from jooq-meta. Available dialects are
named org.util.[database].[database]Database.

Natively supported values are:

org.jooq.util.ase.ASEDatabase
org.jooq.util.cubrid.CUBRIDDatabase
org.jooq.util.db2.DB2Database
org.jooq.util.derby.DerbyDatabase
org.jooq.util.firebird.FirebirdDatabase
org.jooq.util.h2.H2Database
org.jooq.util.hsqldb.HSQLDBDatabase
org.jooq.util.informix.InformixDatabase
org.jooq.util.ingres.IngresDatabase
org.jooq.util.mariadb.MariaDBDatabase
org.jooq.util.mysql.MySQLDatabase
org.jooq.util.oracle.OracleDatabase
org.jooq.util.postgres.PostgresDatabase
org.jooq.util.sqlite.SQLiteDatabase
org.jooq.util.sqlserver.SQLServerDatabase
org.jooq.util.sybase.SybaseDatabase

This value can be used to reverse-engineer generic JDBC DatabaseMetaData (e.g. for MS Access)

org.jooq.util.jdbc.JDBCDatabase

This value can be used to reverse-engineer standard jOOQ-meta XML formats

org.jooq.util.xml.XMLDatabase

You can also provide your own org.jooq.util.Database implementation
here, if your database is currently not supported -->
<name>org.jooq.util.postgres.PostgresDatabase</name>

<!-- All elements that are generated from your schema (A Java regular expression.
Use the pipe to separate several expressions) Watch out for
case-sensitivity. Depending on your database, this might be
important!

You can create case-insensitive regular expressions using this syntax: (?i:expr)

Whitespace is ignored and comments are possible.
-->
<includes>.*</includes>

<!-- All elements that are excluded from your schema (A Java regular expression.
Use the pipe to separate several expressions). Excludes match before
includes, i.e. excludes have a higher priority -->
<excludes>
UNUSED_TABLE # This table (unqualified name) should not be generated
| PREFIX_.* # Objects with a given prefix should not be generated
| SECRET_SCHEMA\.SECRET_TABLE # This table (qualified name) should not be generated
| SECRET_ROUTINE # This routine (unqualified name) ...
</excludes>

<!-- The schema that is used locally as a source for meta information.
This could be your development schema or the production schema, etc
This cannot be combined with the schemata element.

If left empty, jOOQ will generate all available schemata. See the
manual's next section to learn how to generate several schemata -->
<inputSchema>public</inputSchema>
</database>

<generate>
<!-- Generation flags: See advanced configuration properties -->
<daos>true</daos>
<pojos>true</pojos>
</generate>

<target>
<!-- The destination package of your generated classes (within the
destination directory)

jOOQ may append the schema name to this package if generating multiple schemas,
e.g. org.jooq.your.packagename.schema1
org.jooq.your.packagename.schema2 -->
<packageName>com.PSNJ.vodic.generated.jooq</packageName>

<!-- The destination directory of your generated classes -->
<directory>src/main/java</directory>
</target>
</generator>
</configuration>

我在 antergos linux(基于 arch)上,我使用的 codegen 命令是:

java -classpath jooq-3.10.6.jar:jooq-meta-3.10.6.jar:jooq-codegen-3.10.6.jar:postgresql-42.2.2.jar.jar:. org.jooq.util.GenerationTool jooq-configuration.xml

所有需要的 .jar 文件都在我运行命令的工作目录中。

最佳答案

在命令中引用我的 jdbc 驱动程序时,我输入了 2 次 .jar

关于java - Linux 上的 JOOQ codegen 失败,java.lang.ClassNotFoundException : org. postgresql.Driver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50001033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com