Ant调用taskkill内存不足

时间:2010-11-05 10:03:37

标签: java xml memory ant

我无法添加

-XX:OnOutOfMemoryError="taskkill /F /PID %%p"

蚂蚁中的java命令的参数。

当我添加

<jvmarg value="-XX:OnOutOfMemoryError="taskkill /F /PID %%p""/>

<jvmarg value="-XX:OnOutOfMemoryError=\\"taskkill /F /PID %%p\\""/>

Ant无法解析XML文件。

如果我这样做

<jvmarg value="-XX:OnOutOfMemoryError=&quot;taskkill /F /PID %%p&quot;"/>

然后我得到

 [java] Caused by: java.lang.ClassNotFoundException: .F
 [java]     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
 [java]     at java.security.AccessController.doPrivileged(Native Method)
 [java]     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
 [java]     at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 [java]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 [java]     at java.lang.ClassLoader.loadClass(ClassLoader.java:248)

任何人都知道这样做的正确方法,以便JVM获得正确的args吗?

由于 尼尔

2 个答案:

答案 0 :(得分:1)

XML允许参数值使用单引号:

<jvmarg value='-XX:OnOutOfMemoryError=\"taskkill /F /PID %%p\"'/>

这将纠正构建文件的xml语法问题。


编辑上面的代码行。从我学到的post in a different forum开始,引号必须被转义,否则会导致您遇到的“ClassNotFoundException”。

答案 1 :(得分:1)

在快速测试创建内存不足之后,实际上不需要引号:)

<jvmarg value="-XX:OnOutOfMemoryError=taskkill /F /PID %p"/>

我已经坚持了好几个小时,并且从未在没有引号的情况下进行过测试。

事实证明,特殊用于需要引号的bat文件,例如

-XX:OnOutOfMemoryError="taskkill /F /PID %%p"