是否有一种方法将所有jar文件包含在类路径的目录中?
我正在尝试java -classpath lib/*.jar:。program,它不能找到在这些罐子里的类文件。我是否需要将每个jar文件分别添加到类路径中?
是否有一种方法将所有jar文件包含在类路径的目录中?
我正在尝试java -classpath lib/*.jar:。program,它不能找到在这些罐子里的类文件。我是否需要将每个jar文件分别添加到类路径中?
当前回答
对我来说,这适用于窗户。
java -cp "/lib/*;" sample
linux
java -cp "/lib/*:" sample
我使用的是Java 6
其他回答
如果您确实需要动态指定所有的.jar文件,您可以使用shell脚本或Apache Ant。有一个名为commons Launcher的公共项目,基本上可以让你将启动脚本指定为蚂蚁构建文件(如果你明白我的意思)。
然后,你可以指定如下内容:
<path id="base.class.path">
<pathelement path="${resources.dir}"/>
<fileset dir="${extensions.dir}" includes="*.jar" />
<fileset dir="${lib.dir}" includes="*.jar"/>
</path>
在启动构建文件中,该文件将使用正确的类路径启动应用程序。
请注意,在Windows上的Java 7中,通配符展开被打破了。
查看这个StackOverflow问题以获得更多信息。
解决方法是在通配符后面加一个分号。Java -cp " where/*;"
窗口:
java -cp file.jar;dir/* my.app.ClassName
Linux:
java -cp file.jar:dir/* my.app.ClassName
提醒: - Windows路径分隔符为; —Linux路径分隔符为: —在Windows操作系统中,如果cp参数不包含空格,“quotes”为可选参数
对我来说,这适用于窗户。
java -cp "/lib/*;" sample
linux
java -cp "/lib/*:" sample
我使用的是Java 6
来自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