- Creating Java to Native Code Interfaces with Janet
- Jeannie: granting java native interface developers their wishes
- Wrapper Generator using Java Native Interface
- Safe Heterogeneous Applications : Curing the Java Native Interface ∗
- Safe Java Native Interface
- Efficient Java Native Interface for Android Based Mobile Devices
- Ilea: inter-language analysis across java and c
- Finding bugs in java native interface programs
- Integrating lua into C for embedding lua interpreters in a C application
- Java Native Interface: Programmer’s Guide and Specification
- Figures and Tables from this paper
- 390 Citations
- An efficient native function interface for Java
- JCUDA: A Programmer-Friendly Interface for Accelerating Java Programs with CUDA
- Using the Java Native Interface to Introduce Device Driver Basics
- Finding bugs in java native interface programs
- SEAN: Support Tool for Detecting Rule Violations in JNI Coding
- Java heap protection for debugging native methods
- Java-XCOM component integration on Linux operating system
- Identifying Java calls in native code via binary scanning
- Jinn: synthesizing dynamic bug detectors for foreign language interfaces
Creating Java to Native Code Interfaces with Janet
JNI performance benchmarks for several popular Java Virtual Machine implementations are presented may be useful in avoiding certain JNI pitfalls and provide a better understanding of JNI-related performance issues. Expand
Jeannie: granting java native interface developers their wishes
Jeannie is presented, a new language design for integrating Java with C that eliminates verbose boiler-plate code, enables static error detection across the language boundary, and simplifies dynamic resource management. Expand
Wrapper Generator using Java Native Interface
This paper describes a process for the semi-automatic conversion of numerical and scientific routines written in the C programming language into computational services that can be used within a distributed serviceoriented architecture such as that being adopted for Grid computing. Expand
Safe Heterogeneous Applications : Curing the Java Native Interface ∗
A solution based on an extension of CCured that makes calling native methods in C as type-safe as pure Java code, and implemented a significant part of this solution and measured its effect on performance. Expand
Safe Java Native Interface
A framework called Safe Java Native Interface (SafeJNI) is proposed that ensures type safety of heterogeneous programs that contain Java and C components and is implemented through a combination of static and dynamic checks on the C code. Expand
Efficient Java Native Interface for Android Based Mobile Devices
This paper proposes to cache class, field, and method information obtained from reflection for subsequent usage in the JNI, and provides a function to pin objects to their memory locations such that they can be accesses through the known reference. Expand
Ilea: inter-language analysis across java and c
ILEA (stands for Inter-LanguagE Analysis) is proposed, which is a framework that enables existing Java analyses to understand the behavior of C code and demonstrates the utility of the specifications generated, by modifying an existing non-null analysis to identify null-related bugs in Java applications that contain C libraries. Expand
Finding bugs in java native interface programs
In this paper, we describe static analysis techniques for finding bugs in programs using the Java Native Interface (JNI). The JNI is both tedious and error-prone because there are many JNI-specific … Expand
Integrating lua into C for embedding lua interpreters in a C application
This work proposes LuCa, a domain specific language for developing integrated applications of Lua and C, with C as the host language, and implements a LuCa processor as a translator from LuCa code into C code that calls appropriate C API functions. Expand
Java Native Interface: Programmer’s Guide and Specification
The JNI is a lightweight version of the Java Virtual Machine that simplifies the development of Native Code by enabling easy-to-use, scalable, and efficient implementations of the Native Method. Expand
Figures and Tables from this paper
390 Citations
An efficient native function interface for Java
GNFI is introduced, which is faster than JNI in all relevant cases and more flexible because it avoids the JNI boiler-plate code, and enables the user to directly invoke native code from Java applications. Expand
JCUDA: A Programmer-Friendly Interface for Accelerating Java Programs with CUDA
This paper presents a programming interface called JCUDA that can be used by Java programmers to invoke CUDA kernels, and shows that this interface can deliver significant performance improvements to Java programmers. Expand
Using the Java Native Interface to Introduce Device Driver Basics
This paper presents some of the methodology and ideology behind using Java, the JNI and the C programming language to expose students to the rigors of basic device driver development with reference to the Linux operating system. Expand
Finding bugs in java native interface programs
In this paper, we describe static analysis techniques for finding bugs in programs using the Java Native Interface (JNI). The JNI is both tedious and error-prone because there are many JNI-specific … Expand
SEAN: Support Tool for Detecting Rule Violations in JNI Coding
A static analysis tool aimed at rules about references to Java objects, which are passed to native methods as local references, was implemented as a plug-in for Clang, a compiler front-end for the LLVM. Expand
Java heap protection for debugging native methods
Java-XCOM component integration on Linux operating system
XCOM system consists of a binary component standard, a software library, and tools that enable programmers to develop component objects with C++ and to use them on Linux operating system. Java … Expand
Identifying Java calls in native code via binary scanning
This work shows that the JNI specification, which is used by Java programs to interoperate with Java code, is principled enough to permit static reasoning about the effects of native code on program execution when it comes to call-backs. Expand
Jinn: synthesizing dynamic bug detectors for foreign language interfaces
This paper shows how to synthesize dynamic analyses from state machines to detect foreign function interface (FFI) violations and lays the foundation for a more principled approach to developing correct multilingual software and a more concise and automated approach to FFI specification. Expand