Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 递归地将JAR包含到类路径中_Java_Ant - Fatal编程技术网

Java 递归地将JAR包含到类路径中

Java 递归地将JAR包含到类路径中,java,ant,Java,Ant,我有一个项目,在几个目录中有几个第三方JAR文件。目前,该项目使用一些ant技巧将所有jar文件递归地包含到类路径中。我想为另一个站点构建一个部署,其中包括将我自己的代码放入一个文件中,并以某种方式包括我需要的其他JAR。命令行上的通配符不会递归地包含JAR。我希望部署在Windows或Linux中工作 我似乎有以下选择: 在我的JAR中包含ant并运行现有脚本 以某种方式将JAR重新组织到一个目录中,这样我就可以在类路径中使用通配符。希望它不会破坏第三方库 手动创建一个大的、丑陋的类路径 有人

我有一个项目,在几个目录中有几个第三方JAR文件。目前,该项目使用一些ant技巧将所有jar文件递归地包含到类路径中。我想为另一个站点构建一个部署,其中包括将我自己的代码放入一个文件中,并以某种方式包括我需要的其他JAR。命令行上的通配符不会递归地包含JAR。我希望部署在Windows或Linux中工作

我似乎有以下选择:

  • 在我的JAR中包含ant并运行现有脚本
  • 以某种方式将JAR重新组织到一个目录中,这样我就可以在类路径中使用通配符。希望它不会破坏第三方库
  • 手动创建一个大的、丑陋的类路径
  • 有人知道更简单的方法吗?我现在倾向于选择1号。

    我会选择2号。构建发行版时,将所有JAR复制到“lib”目录,然后使用通配符将它们全部包含在内。我从来没有听说过第三方库在做这样的事情时会崩溃。
    使用ant:use copy with flant=“true”并包含指示要递归通过的目录/jar的文件集,不应该有太多的技巧。

    选项4:目标是让你的应用程序只需

    java -jar your.jar
    
    主类和类路径在
    your.jar
    MANIFEST.MF
    中设置。使用ant在构建时创建类路径。这可以是一个大而丑陋的嵌套树,也可以是
    lib
    中一个大而丑陋的扁平树


    例如,请参阅和。

    您可以使用并将所有内容放在一个JAR文件中。您需要验证第三方许可和分发条款,以确保您可以重新打包它们的库。

    您可以将jar放在一个目录中,并包含一个构建类路径的脚本。如果jar依赖于它的位置,那个罐子坏了——我当然从来没有见过这样的事情。@Dave Newton这是罐子清单的一个功能,请看@Matt,他仍然需要列举主罐子中的罐子列表。@Jagat编辑以澄清,我是在回应“罐子坏了”的评论