我有一个java类,它有近12个jar文件依赖项,我正在使用ubuntu 12.10。我需要知道如何运行这个 java 应用程序,因为每次我运行它时,它都会给我错误,因为"找不到符号"。我将所有 jar 文件都放在一个名为 libs 的文件夹中。我已经尝试了这些命令,但这些命令都没有给我一些成功的结果。我有航班.java类在测试目录中,libs 目录在测试目录中。目前我在测试目录中
javac -cp "/home/ubuntu/test/libs/*.jar" flights.java
javac -cp '/home/ubuntu/test/libs/*.jar' flights.java
如果您的应用程序中有一个名为 flights.java
的类,并且所有必需的 jar 都位于 /home/ubuntu/test/libs/
然后使用这个
javac -cp '.:/home/ubuntu/test/libs/*.jar' flights.java
并运行
java -cp '.:/home/ubuntu/test/libs/*.jar' flights
最好只是将依赖项和应用程序打包到单个 jar 中,并使其可启动和可运行 jar
12个罐子并不是一个很大的数字。为什么不直接将所有 jar 附加到类路径上?
或者,您可以创建另一个 jar,并在该 jar 的 MANIFEST 的类路径变量中指定所有 jar。MF,然后将此单个 jar 添加到类路径中。
编辑:
这是我的做法。创建清单。内容类似于以下内容的 MF 文件:
Manifest-Version: 1.0
Archiver-Version: whatever
Created-By: whatever
Built-By: author-name
Build-Jdk: 1.6.0_34
Class-Path: jar1.jar jar2.jar jar3.jar
将jar1.jar
替换为 JAR 的实际文件名。
然后你可以用命令创建一个jar:jar cvf test.jar -m ./MANIFEST.MF
。
现在,当您在类路径上使用它时,请像java -jar xyz.jar class-name
一样使用它