2

我有一些使用 30 个 jar 的 Java 程序。

今天我知道我可以这样做:

java -cp 1.jar;2.jar.....;30.jar; MyApplication -param1 AA -param2 BB

看起来很乱吗?

如何将所有 jar 分组到一个组(文件),就像 Eclipse 一样.classpath

谢谢,

4

5 回答 5

4

您可以使用通配符添加特定文件夹中的所有文件,如此处所示

于 2013-08-06T14:09:31.237 回答
2

这看起来很乱吗?绝对地!在这些情况下,我经常编写一个批处理/shell 脚本来简单地调用java -cp命令。

拥有特定脚本的优点是您依赖环境变量 ( CLASSPATH),因此不同的脚本/可执行文件可以使用不同的 jar 集。

请注意,如果您使用 Ant/Maven 等构建项目,它们将提供选项以使用您构建它的相同类路径(或其派生路径)运行您的程序。

例如

$ mvn exec:java
于 2013-08-06T14:26:38.243 回答
1

使用环境变量,并将其传递给 -cp 选项

从 Java 6 开始,您可以使用通配符选项在一个目录中包含多个 JAR。这是一个例子:

java.exe -classpath $HOME/myjars/* Main
于 2013-08-06T14:09:09.813 回答
1

如果您的 Java 程序捆绑为 jar 文件,您可以使用 jar 清单文件中的类路径属性来声明运行程序所需的其他 jar。通过这样做,您只需在命令行上列出您自己的 jar。

请参阅Setting multiple jars in java classpath中 oxbow_lakes 的答案

于 2013-08-06T14:22:32.613 回答
1

Unix解决方案:

为了使它成为半动态的并且在你的终端中仍然易于使用,你可以添加一个alias到你的.bashrc/.bash_profile来存储包含的 jars。

添加alias javal="java -cp 1.jar:the-rest-of-your-jars.jar:2.jar:30.jar:"到您的 bash 配置文件将可以只执行javal MyApplication -param1 AA -param2 BB. 当您想添加更多罐子时,只需更新您的.bashrc/ .bash_profile。当然,您可以使用任何命令名代替javal.

关于别名的简单解释在这里

-编辑-谢谢@mschenk74

于 2013-08-06T14:28:17.837 回答