我正在尝试运行编译 GWT 的 ant 构建脚本。该脚本包含大量库,每个库都有相对较长的路径。我的 GWT 代码只涉及其中一些库;但是,将用于此目的的 lib 目录中的所有库以及我正在开发的所有其他应用程序包含在内是很方便的。这是我的构建脚本的相关部分:
<path id="gwt.project.class.path">
<pathelement location="gen"/>
<pathelement location="${gwt.sdk}/gwt-user.jar"/>
<fileset dir="${gwt.sdk}" includes="gwt-dev*.jar"/>
<fileset dir="${smartgwt.sdk}" includes="smartgwt*.jar"/>
<!-- Add any additional non-server libs (such as JUnit) -->
<fileset dir="lib" includes="**/*.jar"/>
</path>
<target name="gwtc" depends="compileApp" description="GWT compile to JavaScript" unless="noGWTModule">
<java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
<classpath>
<pathelement location="src"/>
<path refid="gwt.project.class.path"/>
</classpath>
<!-- add jvmarg -Xss16M or similar if you see a StackOverflowError -->
<jvmarg value="-Xmx256M"/>
<!-- Additional arguments like -style PRETTY or -logLevel DEBUG -->
<arg value="${gwt.module}"/>
<arg value="-war" />
<arg value="${gwt.gen.dir}" />
</java>
</target>`
当我尝试运行它时,我收到以下错误:
java.io.IOException: CreateProcess: "C:\Program Files\Java\jdk1.5.0_11\jre\bin\java.exe" -Xmx256M -classpath "C:\Program Files\Common Files\eclipse\workspace\development\src;C:\Program Files\Common Files\eclipse\workspace\development\lib\build\hbBuildSupport.jar;C:\Program Files\Common Files\eclipse\workspace\development\lib\db\hibernate\ehcache.jar;C:\Program Files\Common Files\eclipse\workspace\development\lib\db\hibernate\hibernate-annotations.jar;C:\Program Files\Common Files\eclipse\workspace\development\lib\db\hibernate\hibernate-commons-annotations.jar;C:\Program Files\Common Files\eclipse\workspace\development\lib\db\hibernate\hibernate-entitymanager.jar;C:\Program Files\Common Files\eclipse\workspace\development\lib\db\hibernate\hibernate-tools.jar;C:\Program Files\Common Files\eclipse\workspace\development\lib\db\hibernate\hibernate-validator.jar;C:\Program Files\Common Files\eclipse\workspace\development\lib\db\hibernate\hibernate3.jar;C:\Program Files\Common Files\eclipse\workspace\development\lib\db\hibernate\javassi�
似乎在编译的某个时刻,包含所有库路径的字符串都被截断了。这可能是由于 CreateProcess 的某些字符限制造成的吗?这个 CreateProcess 命令字符串在截断之前只有大约 1024 个字符,这似乎是一个很小的限制。反正有没有增加这个限制?任何想法/解决方案/解决方法表示赞赏。
谢谢,马尤尔