Rhino 자바스크립트 엔진에서 Native 라이브러리 사용하기 1

| Comment

자바로 만든 자바스크립트 엔진, Rhino에서 C로 짠 네이티브 라이브러리를 구동하는 방법을 소개하겠습니다.

준비물

JNA (Java Native Access)를 포함하여 컴파일된 Rhino 엔진

Java

(리눅스 기준) gcc

방법

C코드 (HelloWorldLib.c)

char* helloWorld() {
    return "Hello World!"
}

이제 이 코드를 컴파일합니다. gcc -fPIC -c HelloWorldLib.c gcc -shared -o libHelloWorld.so HelloWorldLib.o

컴파일이 완료되었으면 libHelloWorld.so가 생성되어 있을겁니다. 이제 이 라이브러리를 JNA를 이용하여 Rhino에서 호출해보겠습니다.

JavaScript코드

print(com.sun.jna.NativeLibrary.getInstance("경로/libHelloWorld").getFunction("helloWorld").invokeInt(new Array()));

Hello World!가 출력됩니다.

가독성이 심각하게 떨어지므로 코드를 분리해보겠습니다.

helloWorldLib = com.sun.jna.NativeLibrary.getInstance("경로/libHelloWorld");

result = helloWorldLib.getFunction("helloWorld").invokeInt(new Array());

print(result);

Hello World!가 출력됩니다.

이제 이 방법을 이용하여 C 텔레그램 라이브러리를 Rhino 엔진에서 사용하는 방법을 다음번에 소개하겠습니다.

Programming
Java
Rhino
JavaScript
Comments