DOI QR코드

DOI QR Code

Integrated Development Environment for Java Native Methods

자바 네이티브 메소드를 위한 통합 개발 환경

  • Received : 2010.05.27
  • Accepted : 2010.06.29
  • Published : 2010.07.28

Abstract

As a result of a growing demand for various mobile devices, the demand for application programs on the devices is on the rise. The Java language that is platform-independent rapidly rose as the best programming language for mobile devices. However, the Java has a problem that does not support platform-dependent features needed by the application. To solve this problem, the JNI technology was introduced by Sun Microsystems. Programmers using the JNI to write native methods need to have a lot of knowledge about the JNI and the internal structure of the JVM. Also, the increased load by using a number of JNI functions may decrease software productivity and quality. Demands for tools writing native method without understanding of JNI are progressively increasing. To develop these tools, it is necessary to translate automatically the differences between Java and C/C++. In this study, I suggested a way to overcome differences between both languages and developed JNI editor that is an integrated develope environment on the basis of this.

다양한 모바일 장비의 등장으로 인하여 해당 장비에서 실행 가능한 응용 프로그램의 요구가 증가하고 있다. 플랫폼 독립적이란 특성을 가지는 자바 언어는 이러한 환경에 최적의 프로그래밍 언어로 급부상하고 있다. 그러나 자바는 가상 기계에 의해 실행되므로 플랫폼 의존적인 기능을 제공하지 못하는 단점을 가진다. 썬 마이크로시스템즈에서는 이러한 문제점을 해결하기 위해 자바 네이티브 메소드라는 JNI 기술을 제시하였다. JNI 기술을 이용하기 위해서는 JVM의 내부구조와 JNI에 대한 풍부한 지식이 필요하다. 또한 수많은 JNI 함수의 사용으로 인하여 프로그램 개발 생산성과 품질의 저하를 초래하고 있다. JNI에 대한 지식 없이 쉽고 빠르게 네이티브 프로그래밍이 가능 하도록 도와주는 지원 도구의 필요성 대두되고 있다. 이를 위해서는 자바 언어와 C/C++ 언어 사이에 존재하는 구문과 의미상 차이점을 자동적으로 처리해 주어야 한다. 본 연구에서 자바와 C/C++언어 간에 차이점과 이를 극복하기 위한 방안을 제시하고 이를 바탕으로 개발한 JNI 통합 개발 환경을 소개한다.

Keywords

References

  1. Amit Kumar Saha, "Beginning JNI with NetBeans C/C++ Pack 6.0, Linux," http://cnd.netbeans.org/docs/jni/nb6-linux/beginning-jni-linux.html
  2. BCEL. http://jakarta.apache.org/bcel/index.html
  3. Eclipse. http://www.eclipse.org
  4. Evgeniy Gabrilovich, Lev Finkelstein, "JNI - C++ integration made easy", C/C++ Users Journal, Vol.19, Issue 1. 10-21 CMP Media, Inc. 2001.
  5. HawtJNI, http://fusesource.org/forge/projects/HAWTJNI
  6. GlueGen, https//gluegen.dev.java.net
  7. Java Native Interface Specification. http://java.sun.com/javase/6/docs/technotes/guides/jni/spec/jniTOC.html
  8. JNA, http://jna.dev.java.net
  9. Ken Arnold, James Gosling, and David Holmes, The Java Programming Language Fourth Edition, Addition Wesley, 2005.
  10. Tim Lindholm and Frank Yellin, The Java Virtual Machine Specification Second Edition, Addison Wesley, 1999.