[[email protected] Desktop]$ java -cp . -Xms2m -Xmx2m Test
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at Test.execute(Test.java:15)
at Test.main(Test.java:25)
내가 원하지만 OutOfMemoryError가있어 다음과 같이
public class Test {
private String name;
public Test(String name) {
this.name = name;
}
public void execute() {
Map<String,String> randomData = new HashMap<String,String>();
for(int i=0;i<1000000000;i++) {
randomData.put("Key:" + i,"Value:" + i);
}
}
public void addData() {
}
public static void main(String args[]) {
String myName = "Aniket";
Test tStart = new Test(myName);
tStart.execute();
}
}
과 내가 그것을 실행하고 간단한 코드를 작성 JVM 충돌에 힙 덤프를 수집 할이 작업 디렉토리 (예 : hs_err_pidXXXX.log
)에 힙 덤프가 없습니다. 내가 뭘 놓치고 있니? 힙 덤프를 얻으려면 어떻게해야합니까?
업데이트 :
나는 여전히 사용 -XX:ErrorFile=.
을 시도하지 않습니다. 위의 방법으로 힙 덤프 (크래시 JVM)를 얻지 못하면 어떻게하면 JVM에서 크롤링하여 로그를 얻을 수 있습니까?
'hs_err_pidXXXX.log'는 애플리케이션이 아니라 JVM이 충돌 할 때 생성됩니다. –
당신은 일식을 사용하여 힙 덤프를 기록 할 수 있습니다 자세한 내용은 여기 http://stackoverflow.com/questions/837351/how-do-i-save-the-heap-dump-to-a-file-in-eclipse – Dileep
그런 다음 내 JVM은 어떻게 충돌합니까? 그 파일을 생성해야합니다. –