是否有一种方法将所有jar文件包含在类路径的目录中?

我正在尝试java -classpath lib/*.jar:。program,它不能找到在这些罐子里的类文件。我是否需要将每个jar文件分别添加到类路径中?


当前回答

我在Ubuntu 10.04上使用java-sun 1.6.0_24的解决方案,所有的jar都在“lib”目录下:

java -cp .:lib/* my.main.Class

如果失败,下面的命令应该起作用(打印出所有*。lib目录中的jar到类路径参数)

java -cp $(for i in lib/*.jar ; do echo -n $i: ; done). my.main.Class

其他回答

您需要分别添加它们。或者,如果确实需要指定一个目录,可以将所有内容解jar到一个目录中,并将其添加到类路径中。但是,我不推荐这种方法,因为您可能会在类路径版本控制和不可管理性方面出现奇怪的问题。

我知道的唯一方法是单独做,例如:

setenv CLASSPATH /User/username/newfolder/jarfile.jar:jarfile2.jar:jarfile3.jar:.

希望有帮助!

来自wepapp的类:

  > mvn clean install

  > java -cp "webapp/target/webapp-1.17.0-SNAPSHOT/WEB-INF/lib/tool-jar-1.17.0-SNAPSHOT.jar;webapp/target/webapp-1.17.0-SNAPSHOT/WEB-INF/lib/*" com.xx.xx.util.EncryptorUtils param1 param2

把jar文件看作目录结构的根。是的,您需要分别添加它们。

在Windows下,这是有效的:

java -cp "Test.jar;lib/*" my.package.MainClass

这是行不通的:

java -cp "Test.jar;lib/*.jar" my.package.MainClass

注意*.jar,因此*通配符应该单独使用。


在Linux操作系统下,如下所示:

java -cp "Test.jar:lib/*" my.package.MainClass

分隔符是冒号而不是分号。