你可以使用两种
-jar或者
-cp,你不能将二者结合起来。如果要将其他JAR放在类路径中,则应将它们放在主JAR的清单中,然后使用,
java -jar或者将完整的类路径(包括主JAR及其依赖项)放入其中,
-cp并在命令行上显式命名主类。
java -cp 'MyProgram.jar:libs/*' main.Main
(我使用的
dir/*语法告诉
java命令将
.jar特定目录中的所有文件添加到类路径中。请注意,
*必须使用shell保护它们免受扩展,这就是为什么我使用了单引号。)
你提到使用的是Ant,因此对于替代清单方法,可以在复制依赖
<manifestclasspath>项之后但在构建JAR 之前使用ant的任务。
<manifestclasspath property="myprogram.manifest.classpath" jarfile="MyProgram.jar"> <classpath> <fileset dir="libs" includes="*.jar" /> </classpath></manifestclasspath><jar destfile="MyProgram.jar" basedir="classes"> <manifest> <attribute name="Main-Class" value="main.Main" /> <attribute name="Class-Path" value="${myprogram.manifest.classpath}" /> </manifest></jar>有了这个位置,java -jar MyProgram.jar它将可以正常工作,并且还将libs在类路径中包括所有JAR文件。



