【问题标题】:Ant javac invalid flag -J-Xms<size>Ant javac 无效标志 -J-Xms<size>
【发布时间】:2013-09-08 14:30:53
【问题描述】:

我正在尝试使用 ant 构建我的一个项目,但出现以下错误

    [javac] javac: invalid flag: -J-Xms512m
    [javac] Usage: javac <options> <source files>

这就是我的 .xml 文件的样子

仅相关部分:

   <javac srcdir="MY_SRC_DIR">
            <compilerarg value="-J-Xms512M" />
            <compilerarg value="-J-Xmx512M" />
   </javac>

尝试了其他选项,我仍然看到与上面相同的错误

[1] 尝试了 -J 和 -Xms 之间的空格

[2] 尝试使用 compilerarg line="-J-Xms512m -J-Xmx512m"

[3] 尝试使用 memoryinitialsize 和 memorymaximumsize 而不是编译器选项。

javac-版本 javac 1.6.0_51

在命令行上试过了,效果很好

 javac -J-Xms512m -J-Xmx512m Blah.java

任何帮助将不胜感激

【问题讨论】:

  • 也试过了,也没用
  • 同样的错误 [javac] javac: invalid flag: -Xms512M
  • 除了现在它说一个无效标志 -Xms
  • -Xmx 和 -Xms 和 -J 在命令行上工作,所以我猜它们是编译器(javac)的参数
  • javac ant 任务的 fork 属性值是多少?我敢打赌,它必须设置为 true 才能有任何工作机会,因为编译器最小/最大内存设置可能改变的唯一方法是分叉不同的 JVM 进行编译。看起来像 fork=false 的默认值。尝试将其设置为 true。

标签: java ant javac


【解决方案1】:

看起来您想要memoryInitialSizememoryMaximumSize 属性。请参阅Javac Task manual page

尝试:

<javac
  memoryInitialSize="512m"
  memoryMaximumSize="512m"
  fork="true"
  ...>
    <!-- stuff -->
</javac>

【讨论】:

  • 就像我在问题详细信息中提到的那样,我已经尝试过这个,并且收到类似的错误 javac: invalid flag: -J-Xms512m。我猜这是因为 memoryInitialSize 被映射到 -J-Xms512m
【解决方案2】:

为什么要在 javac 编译器上设置堆大小限制? -Xms 和 -Xmx 是 java 运行时 java 而不是 java 编译器 javac 的参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    • 2014-03-08
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多