【问题标题】:jooq startup: command line to generate classesjooq 启动:命令行生成类
【发布时间】:2012-04-14 23:26:05
【问题描述】:

您能帮我更改此命令行以在 MacOS 中使用它吗? jar 文件将在桌面上

java -classpath jooq-2.0.0.jar;jooq-meta-2.0.0.jar;jooq-codegen-2.0.0.jar;mysql-connector-java-5.1.18-bin.jar;. org.jooq.util.GenerationTool /guestbook.xml

谢谢。 F.


更新:

好的,这是完整的行和我得到的错误。所有列出的 jar 都存在于该文件夹中:

java -classpath ~/Desktop/JOOQ/jooq-2.1.0.jar:~/Desktop/JOOQ/jooq- meta-2.1.0.jar:~/Desktop/JOOQ/jooq-codegen-2.1.0.jar:~/Desktop/JOOQ/ mysql-connector-java-5.1.15-bin.jar:. org.jooq.util.GenerationTool /bookstore.xml

线程“main”中的异常 java.lang.NoClassDefFoundError: org/jooq/ util/GenerationTool 引起:java.lang.ClassNotFoundException: org.jooq.util.GenerationTool 在 java.net.URLClassLoader$1.run(URLClassLoader.java:202) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:190) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:247)


更新 2

如果我更改路径删除 ~/ 并使用:

java -classpath /Users/fabio/Desktop/JOOQ/jooq-2.1.0.jar:/Users/fabio/Desktop/JOOQ/jooq-meta-2.1.0.jar:/Users/fabio/Desktop/JOOQ /jooq-codegen-2.1.0.jar:/Users/fabio/Desktop/JOOQ/mysql-connector-java-5.1.15-bin.jar org.jooq.util.GenerationTool /Users/fabio/Desktop/JOOQ/bookstore .xml

我得到一个不同的错误:

2012 年 4 月 1 日下午 5:19:52 org.jooq.tools.JooqLogger 错误 严重:找不到 /Users/fabio/Desktop/JOOQ/bookstore.xml 2012 年 4 月 1 日下午 5:19:52 org.jooq.tools.JooqLogger 错误 严重:------------
2012 年 4 月 1 日下午 5:19:52 org.jooq.tools.JooqLogger 错误 严重:请确保它位于类路径上并被限定为类路径位置。 2012 年 4 月 1 日下午 5:19:52 org.jooq.tools.JooqLogger 错误 严重:如果它位于当前工作目录,请尝试在路径中添加“/” 2012 年 4 月 1 日下午 5:19:52 org.jooq.tools.JooqLogger 错误 严重:用法:GenerationTool

【问题讨论】:

  • 真的很奇怪。我假设冗余空间是显示工件。对我来说,该命令似乎仅适用于类路径中的 jooq-2.1.0.jar 和 jooq-codegen-2.1.0.jar。您可以尝试删除所有其他罐子(尤其是最后的 :.)吗?
  • 对不起,不起作用。也许我应该在之前输入其他终端命令?

标签: java classpath jooq


【解决方案1】:

您可以预先添加每个 jar 文件的完整路径(例如 ~/Desktop/),您还需要将 windows 类路径分隔符(分号,';')替换为 UNIX/MAC 分隔符(冒号,': ')。例如:

java -classpath ~/Desktop/jooq-2.0.0.jar:~/Desktop/jooq-meta-2.0.0.jar:~/Desktop/jooq-codegen-2.0.0.jar:~/Desktop/mysql-connector-java-5.1.18-bin.jar:. org.jooq.util.GenerationTool /guestbook.xml

【讨论】:

  • 好的,我尝试将文件放在 ~/Desktop/JOOQ 文件夹中......但我得到了一个找不到类的异常:
  • 线程“main”中的异常 java.lang.NoClassDefFoundError: org/jooq/util/GenerationTool 原因:java.lang.ClassNotFoundException: org.jooq.util.GenerationTool
  • 上面的命令假定文件直接在桌面下(而不是在 JOOQ 文件夹中)。您基本上只需要指定每个 jar 的完整路径,并用冒号 (:) 分隔它们。相同的命令对我来说很好。如果仍然失败,请描述您正在使用的确切命令以及相关目录中的文件列表。
【解决方案2】:

好的,找到了。使用命令:

  1. cd /Users/fabio/Desktop/JOOQ

  2. java -classpath /Users/fabio/Desktop/JOOQ/jooq-2.1.0.jar:/Users/fabio/Desktop/JOOQ/jooq-meta-2.1.0.jar:/Users/fabio/桌面/JOOQ/jooq-codegen-2.1.0.jar:/Users/fabio/Desktop/JOOQ/mysql-connector-java-5.1.15-bin.jar:. org.jooq.util.GenerationTool /bookstore.xml

':.'在最后一个 jar 文件之后是必需的。

谢谢。

【讨论】:

    猜你喜欢
    • 2020-09-03
    • 2021-12-29
    • 2021-01-27
    • 2021-01-22
    • 1970-01-01
    • 2019-01-08
    • 2012-09-10
    • 2015-09-16
    • 1970-01-01
    相关资源
    最近更新 更多