私たちはJavaプロジェクトに取り組んでおり、antを使ってプログラムをビルドして実行しています。今私たちはいくつかのパフォーマンステストを行っており、classmexerを使いたかったのです。問題は、アリとクラスメイカーの仕事を一緒にすることができないということです。classmexerとantを連携させる
JVMに引数
-javaagent:classmexer.jar
に合格する必要がありますので、私たちは
<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>
当社のbuild.xmlに次のように試してみましたが、それは動作しません。 MemoryUtil.deepMemoryUsageOf(Object)
が
呼び出されたときに は、実行時にプログラムは次の例外
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)
をスローだから、これはJVMに引数を渡すための正しい方法ではないようですが、私たちは何を把握することはできませんする。
は助けてくれてありがとう:)
明確なコメントをいただきありがとうございます。しかし、それはまだ動作しません。おそらく、OpenOfficeで奇妙なことが起きているかもしれません...プロジェクトはOpenOffice拡張を書くことです.OpenOffice自体によってコードがロードされるため、おそらくjvmに渡された引数は無視され、これに対処する別の方法があります。 とにかく、ありがとうございます:-) –