我們正在開發一個java項目,我們使用ant來構建和運行程序。現在我們正在進行一些性能測試,我們想使用classmexer。問題是我們不能讓螞蟻和班級成員一起工作。使classmexer和ant一起工作
因爲它是必要的傳遞給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正確的方式,但我們無法弄清楚什麼去做。
謝謝你的幫助:)
謝謝你的清晰評論的答案。但它還沒有工作。也許一些奇怪的與OpenOffice的發生......該項目是有關編寫一個OpenOffice延伸,所以我們的代碼是由OpenOffice的自身加載,也許它忽略傳遞給JVM的參數和具有(希望)另一種方式來解決這個問題。 無論如何,非常感謝你:-) –