当在Hudson Server (windows机器)上部署我的应用程序时,我在调用java.exe时遇到问题,因为我的类路径太长- windows在一定长度后弹出。
classpath
基本上是数百个由分号分隔的Jar
文件
假设下面的类路径太大,如果每个jar都显式地列在类路径中:
<path id="classpath.project">
<fileset dir="lib" includes="**/*.jar" />
</path>
我能做些什么来缩短我的类路径?
因为Java 6在类路径中支持通配符。具体来说,它支持使用*
来引用给定目录中的所有jar文件(注意:而不是 *.jar
!):
使用*
作为类路径表示"当前目录下所有jar文件",使用lib/*
表示"lib/
目录下所有jar文件"。
除非您有吨目录,否则这应该足够了。然而,我不知道如何利用Ant的这一事实。
你可以谷歌OneJar。如果您想自己做,那么生成一个只有清单的"空"jar文件。在清单中添加"Class-Path: a.jar, another.jar, bla-blub.jar"行,其中包含所有需要的jar文件。(谷歌"manifest Class-Path")(可以用ant完成)如果所有的jar文件都像往常一样被部署,那么你现在只需要在类路径上的"空"jar文件,因为JVM现在将使用清单来查找所有其他jar文件。