목차
- 자바 javac 활용 java 소스 코드 컴파일 및 실행하기 이전 포스팅 참고 학습
- 자바스크립트 split 공백 문자 기준으로 문자열 나누기 이전 포스팅 참고 학습
- 자바 Hex 문자열을 바이트 배열로 변환하기 이전 포스팅 참고 학습
- 자바 JNI 간단한 C 소스코드 작성 예제
- 자바 JNI GCC를 활용한 C 소스코드 컴파일 및 so 동적 라이브러리 생성 예제
자바 javac 활용 java 소스 코드 컴파일 및 실행하기 이전 포스팅 참고 학습
이전 포스팅에서는 자바 개발 환경을 설정하고, 자바 소스 코드를 컴파일하고 실행하는 방법을 설명했습니다. 자바 컴파일러 javac를 사용하여 소스 코드를 컴파일하고, java 명령어로 실행할 수 있습니다. 오늘 예제에서는 자바 소스 코드를 컴파일하는 예제는 아니지만 이후 예제에서 자바 소스 코드를 컴파일 할 예정이기때문에 아래 링크를 참고하여 학습해주세요.
2023.08.10 - [Linux] - [Linux/Java] 리눅스 우분투에서 java 컴파일 및 실행 예제(javac)
자바스크립트 split 공백 문자 기준으로 문자열 나누기 이전 포스팅 참고 학습
이전 포스팅에서는 JavaScript에서 문자열을 특정 구분자를 기준으로 분할하는 방법과 예제에 대해 알아보았습니다. split 함수를 사용하여 문자열을 나눌 수 있으며, 주로 문자열 처리에 유용합니다. 특히 토큰이라고 하는 것은 문자열과 문자열 사이를 나누는 기준이되는 문자를 의미합니다. 이처럼 토큰을 기준으로 자바에서 문자열을 나누기 위해서 split을 사용합니다. 자바에서 split 활용 예제가 궁금하시다면 아래 링크를 참고해주세요.
2023.08.02 - [Java] - [자바/Javascript] split 문자열 분리(공백, 특수문자 나누기 및 단어수 세기)
자바 Hex 문자열을 바이트 배열로 변환하기 이전 포스팅 참고 학습
마지막으로 이전 포스팅에서는 Hex(16진수) 형식의 문자열을 자바에서 바이트 배열로 변환하는 방법을 알아보았습니다. 이것은 주로 암호화나 네트워크 통신에서 Hex 문자열을 다루는 경우에 사용됩니다. 암호화 뿐만아니라 네트워크 통신과정에서 바이트를 문자열로 보내는 경우에도 사용합니다. 자바에서 Hex 문자열을 바이트 배열로 변환하는 방법이 궁금하시다면 아래 링크를 참고해주세요.
2023.08.14 - [Java] - [Java/Linux] Hex 문자열을 바이트 배열로 변환 예제
자바 JNI 간단한 C 소스코드 작성 예제
아래는 JNI(Java Native Interface)를 사용하기위해 간단한 C 소스 코드를 작성하는 예제입니다. 이러한 C 함수는 이후 자바에서 불릴 수 있는 상태가 됩니다.
먼저 아래는 JNI C 소스코드입니다.
// MyJNIExample.c
#include <jni.h>
#include <stdio.h>
JNIEXPORT jstring JNICALL Java_com_example_MyJavaClass_getMessage(JNIEnv *env, jobject obj) {
return (*env)->NewStringUTF(env, "Hello from C!");
}
그리고 아래는 JNI C 헤더 파일입니다.
// MyJNIExample.h
#ifndef _Included_com_example_MyJavaClass
#define _Included_com_example_MyJavaClass
#endif
JNIEXPORT jstring JNICALL Java_com_example_MyJavaClass_getMessage(JNIEnv *, jobject);
자바 JNI GCC를 활용한 C 소스코드 컴파일 및 so 동적 라이브러리 생성 예제
아래는 JNI로 작성한 C 소스 코드를 GCC(GNU Compiler Collection)를 사용하여 컴파일하고, 동적 라이브러리(.so 파일)를 생성하는 예제입니다. 이러한 so 동적 라이브러리는 자바에서 호출할 수 있습니다. JAVA_HOME은 개인 환경에 따라 다르게 설정해주세요.
$ export JAVA_HOME=/ssd_512g/usr/lib/jvm/java-8-openjdk-amd64
$ gcc -shared -o libmyjniexample.so -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux MyJNIExample.c