2013-03-18 145 views
4

我在Java中有一个缓存应用程序,我需要将不同大小的对象放入缓存中。问题是我真的不知道如何计算自定义对象的大小,并找到了解决方案 - 使用该库:http://mvnrepository.com/artifact/com.googlecode.sizeofag/sizeofag/ 1.0.0。 要使用库运行程序,我需要指定命令行参数-javaagent。那么,如果我使用maven,我该怎么做呢?使用maven exec插件传递命令行参数javaagent


该程序是简单的:

protected static Boolean b; 
public static void main(String[] args) 
{ 
    System.out.println(SizeOfAgent.sizeOf(b)); 
} 

这是输出:

0 
Can not access instrumentation environment. 
Please check if jar file containing SizeOfAgent class is 
specified in the java's "-javaagent" command line argument. 


P.S.我知道,这样的问题已经存在,但它没有适当的答案。

回答

5

在Linux/Unix机器上,“mvn”命令将使用shell变量“MAVEN_OPTS”传递选项。如果你想给Maven更多的内存,这很有用。在您的.profile或.bash_profile中加入一行像这样:

出口MAVEN_OPTS = -javaagent

在Windows上:

壳(CMD.EXE)键入“set MAVEN_OPTS = ...”

添加MAVEN_OPTS到环境

的NetBeans:

在〜/的.netbeans/6.5 /,创建等/的netbeans.conf。加入你的环境变量有,例如:

出口MAVEN_OPTS = “ - Xmx512m -XX:MaxPermSize参数=128米”

+0

但如果我使用一个IDE(Netbeans的),怎么办呢? :) – PAcan 2013-03-18 02:20:55

+0

@PAcan我编辑答案。 – lichengwu 2013-03-18 02:26:32