2013-10-09 1 views
1

저는 Ubuntu 12.04를 사용하고 있습니다. BufferWriter를 사용하여 Java 파일을 작성하여 새 파일을 열고 쓴다. 그러나 나는 BufferWriter를 닫지 않았다. lsof 명령을 사용하여 터미널에서 열려있는 파일 수를 확인합니다. 그러나 파일이 목록에 표시되지 않습니다. jar에 BufferWriter를 사용하는 대신, 터미널에서 lsof 명령을 실행하면 jar 파일이 표시됩니다. BufferWriter가 포함 된 java 또는 클래스 파일을 표시하는 방법은 lsof 명령을 사용하여 터미널에서 제대로 닫히지 않았습니다. 사전 터미널에서 예를 들어 LSOF Java 및 클래스 파일을 표시하지 않는 명령

,

 lsof +D /home/manoj/MyProject/WEB-INF 

덕분에 .. 난 영어 잘하지 오전 두렵다.

답변

0

Java 프로세스가 닫히 자마자 파일도 JVM에 의해 닫힙니다. 또한, lsof는 자바 코드를 실행하는 jvm 프로세스 인 경우에만 프로세스를 나열하기 때문에 파일을 연 클래스를 볼 수 없습니다.

java -jar를 실행하면 jvm에서 jar 파일을 열어 둘 수 있지만 클래스에서 java를 실행하면 메모리로로드 된 다음 닫히기 때문에 JVM에서 열리는 클래스 파일을 볼 수 없습니다 어느 한 쪽.

+0

그런 다음 'class'또는 'java'파일을 표시하는 방법은 무엇입니까? –

+0

정확히 무엇을하려고하는지 명확히하십시오. 코드에서 BufferWriter를 닫는 것을 잊은 부분이나 무엇을 찾고 싶습니까? –

+0

정확히 맞습니다. 그러나 클래스 파일을 jar 파일로 생성하고 싶지 않습니다. 대신에 클래스 파일에 닫지 않은 BufferWriter, FileOutPutStream을 찾으십시오. –

관련 문제