long start = System.currentTimeMillis();

    .....
    .....

long end = System.currentTimeMills();

System.out.println("[Total Time] : " + (end-start)/1000.0 + " s");

'NATIVE > java' 카테고리의 다른 글

자바코드로 프로그램 또는 스크립트 실행하기  (0) 2012.11.13
java JSON library 다운로드  (0) 2012.08.15
오픈소스 라이센스  (0) 2012.08.14



윈도우



윈도우에서 프로그램을 실행

try {
    String[] cmdarray = {"cmd", "/y", "/c", "run.exe"}
    Process p = Runtime.getRuntime().exec(cmdarray);
    p.waitFor();
    p.destroy();
} catch (Exception e) {
    e.printStackTrace();
}


윈도우에서 스크립트를 실행하려면 cygwin을 설치해서 bash 를 실행시킨다.


try {
	String[] cmdarray = {"cmd", "/y", "/c", "bash run.sh arg"}
	Process p = Runtime.getRuntime().exec(cmdarray);
	p.waitFor();
	p.destroy();
} catch (Exception e) {
	e.printStackTrace();
}






리눅스


// TODO

'NATIVE > java' 카테고리의 다른 글

자바 프로그램 시간 측정  (0) 2013.05.27
java JSON library 다운로드  (0) 2012.08.15
오픈소스 라이센스  (0) 2012.08.14

우분투에는 기본적으로 OpenJDK가 설치되어 있지만, 그래도 Oracle (Sun)의 JDK를 설치하고 싶을 수도 있으나더이상 우분투의 리포지토리에서도 구할 수 없으며 또한 오라클에서는 데비안용(우분투용) 패키지를 제공하고 있지 않다. 따라서 다음과 같은 절차로 설치한다.


1. 다운로드

우선, http://www.oracle.com/technetwork/java/javase/downloads/ 에서 .tag.gz을 다운로드 받아서 압축을 풀어둔다.


2. 복사

압축을 푼 디렉토리를 /usr/lib/jvm 아래로 이동 또는 복사한다. 관리자 권한이 필요할 것이니 터미널에서 sudo를 적절히 이용해야 한다. 이 경로에 다른 버전의 jdk들이 모여 있으니 참고하기 바란다. 바이너리의 버전업을 대비해서 링크를 생성해 관리하는 것도 좋겠다.

나의 경우에는 다운로드 받아 압축을 해제한 디렉토리인 /jdk1.7.0_02를 /usr/lib/jvm 아래에 옮겨두고  /jdk1.7.0_02를 가리키는 /jdk1.7.0이란 이름의 링크를 만들어 두었다.


3. 시스템 설정

다음으로는 터미널에서 다음 3개의 명령을 차근차근 입력하면 설치가 끝난다.

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0/jre/bin/java" 1

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0/bin/javac" 1

sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0/jre/bin/javaws" 1


4. 확인

설치된 자바를 시스템의 기본 자바로 설정하려면 다음의 명령을 입력한다.

sudo update-alternatives --config java


방금 설치한 JDK가 마지막에 추가되어 있는 것을 확인할 수 있으며 해당 번호를 선택해서 기본 자바 런타임으로 지정할 수 있다. 다음과 같이 컴파일러에 대해서도 응용해 보기 바란다.

sudo update-alternatives --config javac


확인 사살을 위해 다음의 명령을 입력해 보면 버전을 알 수 있다.

java -version



아래 링크에서 라이브러리(jar) 파일을 다운 받을 수 있다.


http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-2.4/




'NATIVE > java' 카테고리의 다른 글

자바 프로그램 시간 측정  (0) 2013.05.27
자바코드로 프로그램 또는 스크립트 실행하기  (0) 2012.11.13
오픈소스 라이센스  (0) 2012.08.14



프로그램을 실행하다보면 어떤 함수에서 JVM에서 OutOfMemory 예외가 발생하는 경우가 종종 있다.

예상보다 메모리를 과하게 잡아먹는다면 실제 필요한 메모리가 얼마인지 알아내야 한다.


힙 최대 메모리 사이즈를 늘려 준 후.

-Xmx2048m 으로 주면 충분할 듯..

private static final Runtime runtime = Runtime.getRuntime();

{
	...
	
	double start, end;                // 실행 전후 메모리 기록 변수
	start = measureHeap();     // 실행 전 메모리 기록
	CC res = run();                           // 메모리 예외발생하는 문제의 함수 콜
	end = measureHeap();      // 실행 후 메모리 기록
	System.out.format(" %10.6f", end - start);    // 콘솔 출력
	System.out.flush();
	...
}

private static double measureHeap() {
	for (int i = 0; i < 4; i++)
		_runGC();
	return ((double) (usedMemory())) / 1048576.0d;
}
private static void _runGC() {
	long usedMem1 = usedMemory(), usedMem2 = Long.MAX_VALUE;
	for (int i = 0; (usedMem1 < usedMem2) && (i < 500); i++) {
		runtime.runFinalization();
		runtime.gc();
		Thread.yield();
		usedMem2 = usedMem1;
		usedMem1 = usedMemory();
	}
}
private static long usedMemory() {
	return runtime.totalMemory() - runtime.freeMemory();
}


수행을 하면, 임시적으로 사용한 메모리를 제외한(GC) 크기가 출력된다.


'NATIVE > eclipse' 카테고리의 다른 글

External Tools로 빌드  (0) 2012.07.11
java.lang.StackOverflowError  (0) 2012.07.10
java.lang.OutOfMemoryError  (0) 2012.07.10

+ Recent posts