'프로그래밍 언어/<Java>'에 해당되는 글 6건

  1. 2011.08.07 Sort a HashMap by Value
  2. 2010.12.27 JNI on linux
  3. 2010.11.06 [자바] 날짜, 요일 출력.
  4. 2010.07.31 [자바]일련의 숫자 임의 정렬하기
  5. 2010.06.16 [String]String.format
  6. 2010.06.10 [팁] File 읽어서 파싱하기
http://www.xinotes.org/notes/note/306/
신고

'프로그래밍 언어 > <Java>' 카테고리의 다른 글

Sort a HashMap by Value  (0) 2011.08.07
JNI on linux  (0) 2010.12.27
[자바] 날짜, 요일 출력.  (0) 2010.11.06
[자바]일련의 숫자 임의 정렬하기  (0) 2010.07.31
[String]String.format  (0) 2010.06.16
[팁] File 읽어서 파싱하기  (0) 2010.06.10
Posted by 소혼
Inside Android 책을 보면서 JNI 예제를 따라 해보고 있다.

책에서는 Visual C++로 예제를 실행하고 있어서 리눅스에서 so 만드는 법이 빠져있다.

1. 책의 예제대로 간단한 java파일을 하나 만든다. HelloJNI.java

public class HelloJNI {
native void printHello();
native void printString(String str);

static { System.loadLibrary("hellojni"); }
public static void main(String args[]) {
HelloJNI myJNI = new HelloJNI();
myJNI.printHello();
myJNI.printString("Hello World");
}
}

2. javac로 HelloJNI.java를 컴파일한다.
# javac HelloJNI.java

3. javah로 헤더를 생성한다. (HelloJNI.h가 생성된다.)
# javah HelloJNI

4. hellojni.c 파일을 만든다. (2에서 생성된 header를 include하고 함수의 바디를 구현)
#include "HelloJNI.h"
#include <stdio.h>


JNIEXPORT void JNICALL Java_HelloJNI_printHello(JNIEnv *env, jobject obj)
{
    printf("Hello World\n");
}

JNIEXPORT void JNICALL Java_HelloJNI_printString(JNIEnv *env, jobject obj, jstring string)
{
    const char *str = (*env)->GetStringUTFChars(env, string, 0); 
    printf("Hello World : %s\n", str);
}


5. hellojni.c를 컴파일한다. (생성되는 so 파일명이 libXXX.so가 되어야 한다. XXX는 java 파일에서 load한 이름)
gcc -fPIC -c hellojni.c
gcc -shared -o libhellojni.so hellojni.o

6. LD_LIBRARY_PATH를 건다.
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH

7. 실행한다.
java HelloJNI

* 6번과 7번 대신 아래 명령어를 실행해도 된다.
java -Djava.library.path=. HelloJNI


여담) 누군가는 하루 10시간을 회사에서 일하고 휴식을 취하지만, 누군가는 10시간이 넘게 회사에서 일하고 집에서는 미래를 만든다.
동기가 쓴 책을 읽을때보다 후배가 쓴 책을 읽고 있을때 나의 게으름이 더 절실히 와닿는 것 같다.
신고

'프로그래밍 언어 > <Java>' 카테고리의 다른 글

Sort a HashMap by Value  (0) 2011.08.07
JNI on linux  (0) 2010.12.27
[자바] 날짜, 요일 출력.  (0) 2010.11.06
[자바]일련의 숫자 임의 정렬하기  (0) 2010.07.31
[String]String.format  (0) 2010.06.16
[팁] File 읽어서 파싱하기  (0) 2010.06.10
Posted by 소혼
TAG Java, JNI, 예제
자바 안한지 너무 오래되었나 보다.

SimpleDateFormat(http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html)
요일이 숫자로 나오게 하는 법을 모르겠음.
또, EEE로 출력시 시스템의 글자를 인식해서 한글로 나오는 듯하다.

SimpleDateFormat sdf = new SimpleDateFormat("hhmmss a");
Date date = new Date(timeMillis);
String time = sdf.format(date);

Calendar
http://download.oracle.com/javase/1.4.2/docs/api/java/util/Calendar.html
포맷된 문자열을 얻는 방법이 아니라 각각을 얻어내는 방법인듯.
Calendar cal= Calendar.getInstance ( );
int day_of_week = cal.get ( Calendar.DAY_OF_WEEK ) - 1; // <0부터 시작하도록 함 //일요일~토요일

신고

'프로그래밍 언어 > <Java>' 카테고리의 다른 글

Sort a HashMap by Value  (0) 2011.08.07
JNI on linux  (0) 2010.12.27
[자바] 날짜, 요일 출력.  (0) 2010.11.06
[자바]일련의 숫자 임의 정렬하기  (0) 2010.07.31
[String]String.format  (0) 2010.06.16
[팁] File 읽어서 파싱하기  (0) 2010.06.10
Posted by 소혼
TAG 날짜, 자바
임의 순서의 값이 필요해 아래와 같은 함수를 작성해보았습니다.

0 부터 19까지 숫자를 임의 순서로 배치하는 예제입니다.


신고

'프로그래밍 언어 > <Java>' 카테고리의 다른 글

Sort a HashMap by Value  (0) 2011.08.07
JNI on linux  (0) 2010.12.27
[자바] 날짜, 요일 출력.  (0) 2010.11.06
[자바]일련의 숫자 임의 정렬하기  (0) 2010.07.31
[String]String.format  (0) 2010.06.16
[팁] File 읽어서 파싱하기  (0) 2010.06.10
Posted by 소혼
자바에도 String.format이 있구나.
printf와 유사하다.

String temp = String.format("%03d_%d", lec, parts);
와 같이 쓴다.

두 변수의 값이 1 2 즉, lec이 1 parts가 2라면
String temp = "001_2 "
과 같이 된다.
신고

'프로그래밍 언어 > <Java>' 카테고리의 다른 글

Sort a HashMap by Value  (0) 2011.08.07
JNI on linux  (0) 2010.12.27
[자바] 날짜, 요일 출력.  (0) 2010.11.06
[자바]일련의 숫자 임의 정렬하기  (0) 2010.07.31
[String]String.format  (0) 2010.06.16
[팁] File 읽어서 파싱하기  (0) 2010.06.10
Posted by 소혼
TAG 자바
1. File을 new line 단위로 읽기

        InputStream fis = myResources.openRawResource(resource 명)
        InputStreamReader isr = new InputStreamReader(fis);

        BufferedReader br = new BufferedReader(isr);

        try {
            String line = br.readLine();
            Log.w("ENGLISH1", line);
        } catch (IOException e) {
            e.printStackTrace();
        }

2. 특정 delimeter 단위로 읽기
        InputStream fis = myResources.openRawResource(R.raw.myfile); // 안드로이드 코드
        Scanner scn = new Scanner(fis).useDelimiter("\\r");

        String parsedStr, parsedStr2;
        while (scn.hasNext()) {
            parsedStr = scn.next();
        }

몇개의 delimeter를 섞어 쓰려면 
ex) "\\r|," <- ^M 또는 , 단위로 구분
신고

'프로그래밍 언어 > <Java>' 카테고리의 다른 글

Sort a HashMap by Value  (0) 2011.08.07
JNI on linux  (0) 2010.12.27
[자바] 날짜, 요일 출력.  (0) 2010.11.06
[자바]일련의 숫자 임의 정렬하기  (0) 2010.07.31
[String]String.format  (0) 2010.06.16
[팁] File 읽어서 파싱하기  (0) 2010.06.10
Posted by 소혼
TAG 자바
이전버튼 1 이전버튼

티스토리 툴바