본문 바로가기

운동하는 개발자/Java

(5)
Java Memory leak 추적 자바의 경우 JVM 위에서 돌아가기에 메로리 누수의 추적이 다른 언어에 비해 쉬운 편이다 우선 해당 문제의 PC에서 heap memory dump를 떠서 살펴보면 어떤 오브젝트에서 많은 메모리가 사용되었는지 확인이 가능하다 1. memery leak이 발생 중인 프로세스 아이디 획득 jps 명령어를 이용할 수 있고 리눅스라면 ps 명령어로도 가능하다 2. jmap을 이용한 메모리덤프 획득 기본 java 설치시 jmap도 설치되어있는데 이를 이용하여 덤프를 뜬다 jmap -dump:format=b,file=heap.hprof [process ID]​ 커맨드에서 위 명령어 입력 시 아래와 같이 진행된다 그리고 커맨드를 입력한 경로에 보면 heap.hprof 파일이 생성되어 있을 것이다 3. Eclipse M..
eclipse 외부 jar 추가 하는법 / 외부 라이브러리 추가 / JAR import to eclipse 1-1. 프로젝트 우클릭 Properties (혹은 Alt+Enter) 1-2. 좌측리스트에서 Java Build Path -> 상단 탭에서 Libraries -> 우측 버튼 Add External JARs 1-3. 원하는 JAR파일을 선택해주면 완료 다만 위 작업까지 완료시 JAR 파일은 절대경로에서 참조할뿐 프로젝트에 함께 싣려 가는거는 아니기에 소스를 공유한다거나 할 시에 라이브러리를 별도로 관리해줘야하는 불편함이 있다 따라서 아래 방법으로 내부에 넣어두고 참조하는 방법도 있다 2-1. 라이브러리를 저장할 경로를 만들기 위해 폴더를 생성한다 보통 소스폴더와 같은 레벨의 위치에 둔다 프로젝트에서 우클릭 New->Folder 2-2. 이름은 lib로 지어주는게 국룰인데 원하는대로 바꿔도 된다 이름 지정..
Eclipse JAR file와 Runnable JAR file 차이점 / JAR vs Runnable JAR Runnable JAR : 말 그대로 실행 가능한 JAR파일 실행이 가능하도록 메인클래스를 정의하는 MANIFEST.MF 파일이 포함되어있다 (java -jar test.jar로 실행이 가능) JAR : 실행이 불가능한 클래스의 라이브러리이며 메인클래스를 포함하지 않는다 (java -jar test.jar로 실행이 불가능)
윈도우 JNLP 확장자 파일 실행 방법 우선 JNLP파일이란 Java Network Launch Protocol의 약자로 서버에 있는 jar파일을 받아 실행한다고 보면 된다 이를 실행하기 위해선 JRE(Java Runtime Environment)가 설치되어있어야 하고 실질적으로 실행하는 바이너리는 "[설치된경로]\jre1_8.버전\bin\javaws.exe" 파일이다 (필자는 개발자 이다보니 JDK만 설치해놨어서 해당 파일이 없었고 '나는 자바 이미 설치되어있는데 왜 실행이 안되지?' 라고하며 java.exe로 암만 실행해도 아무 반응이 없었다) 자바설치 주소 : www.java.com/ko/download/ 자바 설치 후 cmd창에서 java -version 명령으로 설치된것을 확인하고 jnlp파일을 그냥 실행했을 때 아무반응이 없거나 정..
java file md5 checksum / 자바 파일 md5 체크썸 MD5는 과거 128비트 암호화 해시함수로 사용되었으나 암호화 결함 오류로인해 암호화에는 사용되지 않고 파일의 무결성 검사에 주로 사용되고 있다 나도 그 용도로 사용중에 있다 public static byte[] createChecksum(String filename) throws Exception { InputStream fis = new FileInputStream(filename); byte[] buffer = new byte[1024]; MessageDigest complete = MessageDigest.getInstance("MD5"); int numRead; do { numRead = fis.read(buffer); if (numRead > 0) { complete.update(buffer,..