2013-03-18 2 views
4

У меня есть приложение для кеширования на Java, и мне нужно поместить объекты разного размера в кеш. Проблема в том, что я действительно не знал, как подсчитать размер настраиваемого объекта, и я нашел решение - использовать библиотеку: http://mvnrepository.com/artifact/com.googlecode.sizeofag/sizeofag/ 1.0.0. Для запуска программы с использованием библиотеки мне нужно указать аргумент командной строки -javaagent. Итак, как я могу это сделать, если я использую maven ???Пропустить аргумент командной строки javaagent с плагином maven exec


Программа проста:

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» будет использовать переменную оболочки «MAVEN_OPTS» для передачи параметров. Это полезно, если вы хотите дать Maven больше памяти. В вашем .profile или .bash_profile поставить линию, как это в:

экспорт MAVEN_OPTS = -javaagent

На окнах:

в оболочке (cmd.exe) типа «набор MAVEN_OPTS = ...»

или

добавить MAVEN_OPTS к среде

В NetBeans:

В ~/.netbeans/6.5 /, создавать и т.д./netbeans.conf. Добавьте переменные среды там, например .:

экспорт MAVEN_OPTS = "- Xmx512m -XX: MaxPermSize = 128m"

+0

, но если я использую IDE (Netbeans), как это сделать? :) – PAcan

+0

@PAcan отредактируйте ответ. – lichengwu