Муравей вызвал задание на убийство из памяти - PullRequest
2 голосов
/ 05 ноября 2010

У меня проблемы с добавлением

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

аргумент для команды java в ant.

Когда я добавляю

<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 получила правильные аргументы?

Спасибо Neil

Ответы [ 2 ]

1 голос
/ 05 ноября 2010

После быстрой проверки нехватки памяти кавычки фактически не нужны :)

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

Я застрял на этом часами и никогда не проверял его без кавычек.

Оказывается, что это специальное предложение для файлов bat, которые действительно нуждаются в кавычках, как это

-XX:OnOutOfMemoryError="taskkill /F /PID %%p"
1 голос
/ 05 ноября 2010

XML допускает одинарные кавычки для значений аргументов:

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

Это исправит проблему синтаксиса xml файла сборки.


Отредактировал строку кода выше.Из сообщения на другом форуме я узнал, что кавычки нужно экранировать, в противном случае это приведет к "ClassNotFoundException", с которым вы тоже столкнулись.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...