Java

    Eclipse RCP SWT Image Path 지정 방법

    Eclipse RCP SWT Image Path 지정 방법

    Eclipse RCP SWT Image Path 지정 방법 일반적으로 RCP 플러그인 프로젝트를 사용하게 되면 패키지 내부에 있는 패키지의 경로가 절대경로가 아닌 상대경로로 지정되기 때문에 패스 지정 방식을 달리 해주어야 합니다. 보통 프로젝트 설정에서 프로젝트 경로를 고정하고 /resource/image1.png 이런 식으로 특정 패키지의 이미지 경로를 지정하게 되지만, RCP 플러그인 프로젝트에서는 Bundle의 고유 ID를 이용하는 방식을 사용합니다. RCP 플러그인 프로젝트를 사용하다보면 View에 SWT 패키지 내부의 컴포넌트를 이용해서 디자인을 하게 되고, Image나 아이콘을 사용하게 될 일이 생기는데, 아래와 같은 코드를 입력함으로서 프로젝트에 포함시켜두었던 이미지 경로를 지정해주면 됩니다..

    [오류해결] java.net.MalformedURLException: no protocol

    [오류해결] java.net.MalformedURLException: no protocol

    java.net.MalformedURLException: no protocol 오류 해결 Java로 API를 호출하거나 URI를 사용하여 호출할때 이런 에러가 발생할 수 있는데, 단순하게 http:// 가 빠져있기 때문에 이런 오류가 발생한다. 호출하려는 URI 앞에 http:// 를 붙여주면 오류가 해결 된다. api.get("api.openweathermap.org/"); api.get("http://api.openweathermap.org/"); URI (x) http:// + URI (O)

    [Java] 자바 코드 실행시간 측정 방법

    [Java] 자바 코드 실행시간 측정 방법

    [Java] 자바 코드 실행시간 측정 방법 System.currentTimeMillis();이라는 System 함수를 이용해서 쉽게 측정이 가능합니다. 1. 사용 방법 먼저 특정 코드가 실행되기 전에 아래 코드를 삽입하고, long start = System.currentTimeMillis(); 특정 코드가 실행되고 난 후 end 변수를 생성해 시간을 기입하고, long end = System.currentTimeMillis(); (end - start) / 1000.0 으로 나누면 초 단위로 실행시간을 확인할 수 있습니다. System.out.println("SDB에서 노드생성까지의 실행시간 : " + (end - start)/1000.0); 2. 사용 결과 폴더와 아이템을 생성하는 시간을 측정하기 위..

    [오류해결] *.jar에 기본 Manifest 속성이 없습니다.

    [오류해결] *.jar에 기본 Manifest 속성이 없습니다.

    [오류해결] *.jar에 기본 Manifest 속성이 없습니다. Java 프로젝트를 jar 파일로 Export 한 후 Window 환경에서 cmd를 통해 실행을 시켜보면 이와 같은 문제가 발생할 경우가 있습니다. 이것은 이클립스에서 jar파일을 만들때 단순한 jar파일로 만들어서 package라던가, 라이브러리라던가, 프로젝트가 실행되기 위해 필요한 모듈과 속성, 설정 파일이 포함되지 않아서 생기는 오류입니다. 해결 방법 Export - Java - Runnable JAR file로 jar 파일을 생성하면 해결 됩니다. Main으로 지정한 프로젝트 실행점을 확인하고, 프로젝트에서 사용된 Library를 어떻게 sub-folder로 묶을 것인지, 패키지화 시킬 것인지에 대한 설정을 해준다음 finish를 ..

    [Java] JMapper .jar 파일 다운로드 방법

    [Java] JMapper .jar 파일 다운로드 방법

    [Java] JMapper .jar 파일 다운로드 방법 JMapper를 사용하기 위해 이클립스에서 Maven을 이용해 편리하게 다운로드 받을 수도 있지만, jar 파일을 따로 사용해야 하는 경우가 있습니다. 이럴 때는 maven을 사용하지 않고 jar만을 따로 다운받아 이클립스의 프로젝트 라이브러리에 직접적으로 import 시켜주는 식으로 사용합니다. 1. 다운로드 링크 https://jar-download.com/artifacts/com.googlecode.jmapper-framework/jmapper-core/1.6.0/source-code 위의 링크에 들어가서 jmapper core 1.6버전을 받으면 됩니다. 파일을 다운 받은 후 jmapper를 사용할 프로젝트 설정에 들어가서 java build..

    [오류해결] java.lang.OutOfMemoryError: unable to create new native thread

    [오류해결] java.lang.OutOfMemoryError: unable to create new native thread

    java.lang.OutOfMemoryError: unable to create new native thread 오류 해결 이 오류가 발생하는 이유는 Java VM(자바 가상 머신)이 Thread를 생성하는데 너무 많은 Thread를 생성해서 그 이상의 Thread를 생성할 수 없기 때문에 발생하는 오류입니다. 제가 프로그래밍을 하면서 코딩을 잘못하게 되면 아래와 같은 현상이 발생합니다. Thread를 사용할 때 잘못된 코딩으로 Thread가 반복해서 생성이 된 경우입니다. 사실 Thread가 무수히 많게 생성이 된 경우가 아니더라도 프로그램이 가지고 있는 자바 가상 머신에 할당된 메모리가 부족할 경우에 java.lang.OutOfMemoryError가 발생할 수 있습니다. 이때는 2번째 방법에서 기술한..

    [Java] Java Cpu 사용량, 메모리 사용량, 디스크 사용량 구하기

    [Java] Java Cpu 사용량, 메모리 사용량, 디스크 사용량 구하기

    [Java] Java Cpu 사용량, 메모리 사용량, 디스크 사용량 구하기 프로그래밍을 하면서 현재 운영체제의 CPU 사용량이나 메모리 사용량, 디스크 사용량 같은 것들을 모니터링 할 수 있진 않을까? 이러한 정보들이 필요할 때가 있습니다. Java에서도 이러한 정보를 간단하게 확인할 수 있도록 라이브러리를 제공합니다. 관련된 API Document 문서는 아래 링크를 확인해주시길 바랍니다. https://docs.oracle.com/javase/7/docs/jre/api/management/extension/com/sun/management/OperatingSystemMXBean.html 1. 디스크 용량 import java.io.File; /** * 디스크 용량 */ @Override public ..

    [Java] n번째 소숫점 자리 출력

    [Java] n번째 소숫점 자리 출력

    [Java] n번째 소숫점 자리 출력 1. 주요 코드 private double updateIndex = 0; updateIndex += (Math.random() * 0.1); updateIndex += 0.1; System.out.println(String.format("%.5f", updateIndex)); 소숫점 자리로 출력하려면 당연히 int가 아닌 float이나, long, double 같은 자료형을 사용해야 한다. 여기서 중요한 것은 String.format()함수. %.5f가 즉 5번째 자리까지 출력한다는 의미이다. %.3f를 넣었다면 3번째 자리까지 소숫점이 출력된다. 현재 updateIndex라는 변수는 Math.random()값에 0.1을 곱하고, 0.1을 더한 값으로 초기화를 했다...

    [Java] SWT Table Checkbox 상태 확인하는 방법

    [Java] SWT Table Checkbox 상태 확인하는 방법

    [Java] SWT Table Checkbox 상태 확인하는 방법 1. Table 컴포넌트를 먼저 생성한다. Table monitorTable = new Table(composite, SWT.BORDER | SWT.CHECK | SWT.FULL_SELECTION | SWT.MULTI); // 테이블 컬럼 설정 TableColumn tblclmnIndex = new TableColumn(monitorTable, SWT.NONE); tblclmnIndex.setWidth(50); tblclmnIndex.setText("인덱스"); TableColumn tblclmnProcess = new TableColumn(monitorTable, SWT.NONE); tblclmnProcess.setWidth(200); ..

    [Java] JMX MBean을 이용한 모니터링(Client, Server)

    [Java] JMX MBean을 이용한 모니터링(Client, Server)

    [Java] JMX MBean을 이용한 모니터링(Client, Server) 앞서서 기술한 JMX 내용에서 추가할 내용이 있었는데, JMX MBean을 사용하기 위해 클라이언트 측과 서버 측의 클래스와 인터페이스를 동일하게 맞춰야 한다고 얘기했지만, 실제로 디버깅을 하며 테스트를 진행해보니 클라이언트 측에는 "클래스"까지 동일하게 맞출 필요가 없었습니다. 예제는 리눅스 환경 기반으로 JMX Server와 Sample Program(1초마다 running 문구가 호출되는 예제 프로그램)을 기동하여 Sample Program이 작동 중인지, 작동 중이지 않는지 Status를 확인하는 기능을 테스트하는 것입니다. JMX는 Clinet에서 필요한 기능 또는 데이터를 서버를 통해서 가져와야만 할 때 JMX를 이용..