我无法添加
-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="taskkill /F /PID %%p""/>
然后我得到
[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吗?
由于 尼尔
答案 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"