2013-03-18 144 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