2014-11-13 3 views
0

나는 도구를 사용하고 있었다. JVM 옵션은 구성 가능합니다.JVM 옵션에서 -Xmx50m을 덮어 쓰는 방법은 무엇입니까?

최근에는 OutOfMemoryError가 발생하므로 다음과 같이 옵션 구성에 -Xmx1024m을 추가합니다.

config.properties을 : JVM_OPTION는 = - 자바 -Xms16777216 -Xmx50m com.f.Startmain

cmd를 로그 지금 :

cmd를 로그하기 전에 "Xmx4096m -XX는 -UseGCOverheadLimit" 자바 -Xms16777216 -Xmx50m com.f.Startmain -Xmx4096m -XX는 :

이 도구는 -Xmx4096m 이전에 덮어 쓰기하지 않는 한 현재의 메모리가 여전히 -UseGCOverheadLimit. 이 도구는 수정할 수 없으며 구성 끝에는 명령 끝에 새로운 옵션 만 추가됩니다.

누군가가 JVM 옵션에서 -Xmx50m을 덮어 쓸 수있는 방법을 알고 있습니까?

+0

혹시 메모리 누출이 있습니까? – Maksym

+0

@Maksym 기본 설정은 실제로 작습니다. 50MB. 이것은 많은 객체를로드하는 큰 도구입니다. 연결되는 db에 따라 다릅니다. 이제 내 DB에는로드하기 위해 더 큰 메모리가 필요한 많은 정보가 들어 있습니다. 모두 고마워. –

+0

도구의 시작 스크립트를보고 -Xmx 설정을 수정할 위치를 찾으십시오. 이 스크립트는 JVM_OPTION 끝에 추가를 추가하는 것으로 보입니다. 이로 인해 -Xmx 매개 변수가 중복되고 클래스 이름 뒤에있는 매개 변수가 무시됩니다. – Udo

답변

3

이 모두 윈도우와 리눅스에 대해 분명히

here 대답 한 것, 당신은 설정할 수 있습니다

export _JAVA_OPTIONS="-Xmx1g" 

나는 빠른 테스트를 실행하고이는 명령 줄 PARAMS을 대체 할 것으로 보인다. (예상치 못한)

내 코드 :이이 프로그램을 실행의 출력이 당신이 볼 수 있듯이

export _JAVA_OPTIONS="-Xmx20m"; 
java Test 
>> Picked up _JAVA_OPTIONS: -Xmx20m 
>> mem: 19601168 
>> total mem: 20447232 

java -Xmx123m Test 
>> Picked up _JAVA_OPTIONS: -Xmx20m 
>> mem: 19601320 
>> total mem: 20447232 

# clear java options 
export _JAVA_OPTIONS= 
java -Xmx123m Test 
>> Picked up _JAVA_OPTIONS: 
>> mem: 121773128 
>> total mem: 123731968 

, 명령 줄에서의 -Xmx 값이 나는 _JAVA_OPTIONS을 지울 때까지 무시된다

public class Test { 
    public static void main(String[] argv) { 
    System.out.println("mem: " + Runtime.getRuntime().freeMemory()); 
    System.out.println("total mem: " + Runtime.getRuntime().totalMemory()); 
    } 
} 

.