Java 让classmexer和ant一起工作
我们正在进行一个java项目,我们使用ant来构建和运行这个程序。现在我们正在做一些性能测试,我们想使用。问题是我们不能让ant和classmexer一起工作 因为有必要将参数传递给jvmJava 让classmexer和ant一起工作,java,ant,profiling,memory-management,Java,Ant,Profiling,Memory Management,我们正在进行一个java项目,我们使用ant来构建和运行这个程序。现在我们正在做一些性能测试,我们想使用。问题是我们不能让ant和classmexer一起工作 因为有必要将参数传递给jvm -javaagent:classmexer.jar 我们在build.xml中尝试了以下内容 <target name="run" description="Try running it." depends="all"> <java jvmargs="-javaagent:clas
-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>
调用MemoryUtil.deepMemoryUsageOf(对象)
时
因此,这似乎不是将参数传递给jvm的正确方法,但我们不知道该怎么做
感谢您的帮助:)我认为您可能成功地传递了JVM参数-您可以尝试使用-verbose运行ant来确认。不过,问题似乎在于jar
属性的使用
根据蚂蚁()的说法:
使用此选项时,JAR文件是所有用户的源文件
类和其他用户类路径设置将被忽略
因此,您必须确保classmexer.jar类包含在应用程序jar中才能找到它们
还有一点:不推荐使用jvmargs
属性-应该使用嵌套的jvmarg
元素
一种方法,您可以考虑将应用程序jar添加到类路径(以及CaseMexel.jar)中,并直接调用JAR清单中指定的主类。大概是这样的:
<java classname="...YourMainClass" failonerror="true" fork="true">
<jvmarg value="-javaagent:classmexer.jar" />
<classpath>
<!-- other stuff here maybe -->
<pathelement location="path_to_classmexer/classmexer.jar" />
<pathelement location="${OUT_DIR}/${FILE_NAME}.jar" />
</classpath>
</java>
我认为您可能成功地传递了JVM参数-您可以尝试使用-verbose运行ant来确认。不过,问题似乎在于jar
属性的使用
根据蚂蚁()的说法:
使用此选项时,JAR文件是所有用户的源文件
类和其他用户类路径设置将被忽略
因此,您必须确保classmexer.jar类包含在应用程序jar中才能找到它们
还有一点:不推荐使用jvmargs
属性-应该使用嵌套的jvmarg
元素
一种方法,您可以考虑将应用程序jar添加到类路径(以及CaseMexel.jar)中,并直接调用JAR清单中指定的主类。大概是这样的:
<java classname="...YourMainClass" failonerror="true" fork="true">
<jvmarg value="-javaagent:classmexer.jar" />
<classpath>
<!-- other stuff here maybe -->
<pathelement location="path_to_classmexer/classmexer.jar" />
<pathelement location="${OUT_DIR}/${FILE_NAME}.jar" />
</classpath>
</java>
感谢您对答案的清晰评论。然而,它还不起作用。也许OpenOffice发生了一些奇怪的事情。。。这个项目是关于编写OpenOffice扩展的,所以我们的代码是由OpenOffice本身加载的,也许它忽略了传递给jvm的参数,并且(希望)有另一种方法来处理这个问题。无论如何,非常感谢:-)谢谢你清晰的回答。然而,它还不起作用。也许OpenOffice发生了一些奇怪的事情。。。这个项目是关于编写OpenOffice扩展的,所以我们的代码是由OpenOffice本身加载的,也许它忽略了传递给jvm的参数,并且(希望)有另一种方法来处理这个问题。无论如何,非常感谢:-)