2012-06-05 7 views
0

비교적 간단한 패킷 캡처 응용 프로그램에서 작업 중이며 Jpcap 라이브러리를 사용하고 있습니다. 내 프로그램에 저장 기능을 추가 할 때까지 모든 것이 작동했습니다.JpcapWriter로 인해 응용 프로그램이 손상됩니다.

내 쓰기 기능이 제대로 납치범과 파일 경로를 얻을 수

public void write() { 
    try { 
     writer = JpcapWriter.openDumpFile(captor, fileName); 
    } catch (IOException e) {e.printStackTrace();} 
    for (Packet packet : this.packets) { 
     writer.writePacket(packet); 
    } 
    writer.close(); 
} 

는 성공적으로 모든 패킷을 통해 루프하지만 코드 블록의 끝에서 쓰기를 시도 할 때, JVM이 충돌합니다.

제 질문은 왜 JpcapWriter를 닫으려고 할 때 내 응용 프로그램이 충돌합니까?

업데이트 : 방금 발견 한 이상한 점은 실제로 파일에 쓰고있는 것입니까? 쓰기 후에 그냥 충돌합니다. 닫은 후에 print 문을 추가했는데 도달하지 못했습니다.

+1

'충돌'을 정의하고 오류를 설명하십시오 (jvm 크래시, 일부 예외 ...) – MartinK

+0

수정 됨, 죄송합니다. JVM이 충돌합니다. –

+0

당신은 저를 도울 수 있습니다 : http://stackoverflow.com/questions/13088612/jpcapwriter-crashes-jvm –

답변

0

나는 나와 같은 문제를 가진 몇몇 다른 사람들을 발견했다. 왜 그런지 모르겠지만 작가를 닫으려는 전화를 끊으면 내 문제가 해결되었습니다. 이제 파일이 올바르게 쓰여지고 문제가 없습니다. 당분간 나는 그 일에 만족하지만, 나중에이 문제로 돌아갈 수 있습니다.

업데이트 : 업데이트를 완료하면 호출을 종료 할 때 파일이 닫힙니다. 캡처 스레드가 닫히면 캡쳐 스레드가 닫히고 캡쳐 스레드는 나를 위해 작가를 닫습니다. 그것은 필자가 이미 닫고있는 JVM이 충돌하기 때문에 필자는 필자를 닫으라고 말하려고했다.

관련 문제