如何使用外部库运行jar

问题描述 投票:-1回答:1

首先,我正在linux环境中工作。其次,我在一个目录中有一个jar文件,其中包含项目的所有类,包括主类。第三,我在一个名为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

在每种情况下我都会收到错误:错误:找不到或加载主类TicketProcessing

所以,我该如何运行该程序?预先感谢。

java jar execute lib
1个回答
0
投票

1)由于您自己的jar不在lib目录中,因此您都需要在classpath中将它们都使用。这就是第1-4行不正确的原因。他们都缺少tp.jar

2)要引用jar,classpath应该使用不带通配符的jar的名称,或者使用一个星号后的目录。这意味着您可以使用... / lib / abc.jar:... / lib / def.jar... / lib / *,但以下内容将被忽略:< [... / lib / *。jar。

3)注意使用

/

。当path元素以/开头时,它表示文件系统根目录中的路径,而不是当前目录中的路径。4]

的用法仅在当前目录中调用脚本或可执行二进制文件时才重要。但是,当您提供路径作为Java的参数时,则没有必要。在您的情况下,您需要以下命令:

java -classpath "tp.jar:lib/*" com.pom.ticketprocessing.main.TicketProcessing

或者,如果您喜欢圆点:

java -classpath "./tp.jar:./lib/*" com.pom.ticketprocessing.main.TicketProcessing

© www.soinside.com 2019 - 2024. All rights reserved.