Мы работаем над Java-проектом и используем ant для сборки и запуска программы.Сейчас мы проводим некоторые тесты производительности и хотим использовать classmexer .Проблема в том, что мы не можем заставить муравья и класс мейкер работать вместе.
Так как необходимо передать jvm аргумент
-javaagent:classmexer.jar
, мы попробовали следующее в нашем build.xml
<target name="run" description="Try running it." depends="all">
<java jvmargs="-javaagent:classmexer.jar" jar="${OUT_DIR}/${FILE_NAME}.jar" failonerror="true" fork="true">
</java>
</target>
но это не работает.Во время выполнения программа выдает следующее исключение
java.lang.IllegalStateException: Agent not initted
at com.javamex.classmexer.Agent.getInstrumentation(Agent.java:33)
at com.javamex.classmexer.MemoryUtil.deepMemoryUsageOf(MemoryUtil.java:104)
at com.javamex.classmexer.MemoryUtil.deepMemoryUsageOf(MemoryUtil.java:80)
at output_archive.test.provaJDOM.main(provaJDOM.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at com.sun.star.lib.loader.Loader.main(Loader.java:141)
, когда MemoryUtil.deepMemoryUsageOf(Object)
вызывается
Так что кажется, что это не правильный способ передачи аргумента в jvm, но мы можемне разбираюсь что делать.
Спасибо за помощь:)