Java 使用大量参数编译GWT代码——CreateProcess上的字符限制?

Java 使用大量参数编译GWT代码——CreateProcess上的字符限制?,java,gwt,ant,createprocess,character-limit,Java,Gwt,Ant,Createprocess,Character Limit,我正在尝试运行编译GWT的ant构建脚本。该脚本包含大量库,每个库都有一个相对较长的路径。我的GWT代码只涉及其中一些库;但是,可以方便地从lib目录中包含我用于此应用程序和我正在开发的所有其他应用程序的所有库。以下是我的构建脚本的相关部分: <path id="gwt.project.class.path"> <pathelement location="gen"/> <pathelement location="${gwt.sdk}/gwt-user.j

我正在尝试运行编译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>`
似乎在编译的某个时刻,包含所有库路径的字符串都被截断了。这可能是由于CreateProcess上的某些字符限制造成的吗?这个CreateProcess命令字符串在截断之前只有大约1024个字符,这似乎是一个很小的限制。有没有办法提高这个限额?任何想法/解决方案/变通方法都值得赞赏

谢谢,
Mayur

对于非常长的类路径,一个可能的解决方法是使用
java.ext.dirs
属性,并删除所有编译时依赖项(类路径中现在引用的JAR文件)在这个目录中。

问题是Windows命令行限制为8191个字符,GWT将每个jar的完整路径放在类路径中。解决此问题的唯一方法是将JAR移动到路径较短的目录中

您可以在windows下通过创建符号链接,然后在生成文件中引用该链接来完成此操作。像这样的

从c的根开始:

mklink /D jars C:\Program Files\Common Files\eclipse\workspace\development\lib

请设置错误格式,无法读取。抱歉,stackoverflow是新手,因此必须确定格式。谢谢
mklink /D jars C:\Program Files\Common Files\eclipse\workspace\development\lib