如何 运行 带有外部库的 jar
How to run a jar with external libs
首先,我在 linux 环境中工作。
其次,我有一个 jar 文件,其中包含我项目的所有 classes,包括主文件,位于一个目录中。第三,我在名为 lib 的子目录中获取了项目的所有外部依赖 jar。
问题是我如何运行我的程序?
我试过:
java -classpath ".:/lib/*" com.pom.ticketprocessing.main.TicketProcessing
java -classpath ".:/lib/*" tp.com.pom.ticketprocessing.main.TicketProcessing
java -classpath ".:/lib/*" tp.jar.com.pom.ticketprocessing.main.TicketProcessing
java -classpath ".:/lib/*" TicketProcessing
java -classpath "tp.jar:/lib/*.jar" TicketProcessing
java -classpath "./tp.jar:./lib/*.jar" TicketProcessing
在每种情况下我都会收到错误:错误:无法找到或加载主 class TicketProcessing
那么,我如何运行这个程序呢?
提前致谢。
1) 由于您自己的 jar 不在 lib 目录中,因此您需要将它们都放在类路径中。这就是第 1 - 4 行不正确的原因。都不见了tp.jar.
2) 要引用 jar,类路径应使用不带任何通配符的 jar 名称,或使用一个星号后的目录。这意味着您可以使用 .../lib/abc.jar:.../lib/def.jar 或 .../lib/* ,但以下将被忽略:.../lib/*.jar.
3) 注意/的使用。当路径元素以/开头时,表示文件系统根目录中的路径,而不是当前目录中的路径。
4) . 的用法仅在调用当前目录中的脚本或可执行二进制文件时才重要。但是,当您将路径作为参数提供给 Java 时,就没有必要了。
在您的情况下,您需要执行以下命令:
java -classpath "tp.jar:lib/*" com.pom.ticketprocessing.main.TicketProcessing
或者如果你喜欢圆点:
java -classpath "./tp.jar:./lib/*" com.pom.ticketprocessing.main.TicketProcessing
首先,我在 linux 环境中工作。 其次,我有一个 jar 文件,其中包含我项目的所有 classes,包括主文件,位于一个目录中。第三,我在名为 lib 的子目录中获取了项目的所有外部依赖 jar。
问题是我如何运行我的程序? 我试过:
java -classpath ".:/lib/*" com.pom.ticketprocessing.main.TicketProcessing
java -classpath ".:/lib/*" tp.com.pom.ticketprocessing.main.TicketProcessing
java -classpath ".:/lib/*" tp.jar.com.pom.ticketprocessing.main.TicketProcessing
java -classpath ".:/lib/*" TicketProcessing
java -classpath "tp.jar:/lib/*.jar" TicketProcessing
java -classpath "./tp.jar:./lib/*.jar" TicketProcessing
在每种情况下我都会收到错误:错误:无法找到或加载主 class TicketProcessing
那么,我如何运行这个程序呢? 提前致谢。
1) 由于您自己的 jar 不在 lib 目录中,因此您需要将它们都放在类路径中。这就是第 1 - 4 行不正确的原因。都不见了tp.jar.
2) 要引用 jar,类路径应使用不带任何通配符的 jar 名称,或使用一个星号后的目录。这意味着您可以使用 .../lib/abc.jar:.../lib/def.jar 或 .../lib/* ,但以下将被忽略:.../lib/*.jar.
3) 注意/的使用。当路径元素以/开头时,表示文件系统根目录中的路径,而不是当前目录中的路径。
4) . 的用法仅在调用当前目录中的脚本或可执行二进制文件时才重要。但是,当您将路径作为参数提供给 Java 时,就没有必要了。
在您的情况下,您需要执行以下命令:
java -classpath "tp.jar:lib/*" com.pom.ticketprocessing.main.TicketProcessing
或者如果你喜欢圆点:
java -classpath "./tp.jar:./lib/*" com.pom.ticketprocessing.main.TicketProcessing