[vox-tech] calling java from within C

Kenneth Herron kherron+lugod at fmailbox.com
Fri Apr 21 11:52:05 PDT 2006


Peter Jay Salzman wrote:
> I'm trying to figure out how to call Java from within C.
> 
> It appears that I have three options:
> 
> 1. If the Java is already running as a process, there's something called
>    CORBA which can be used.
> 2. JNI which appears to be most popular.
> 3. CNI which someone said was 'vastly' more efficient than JNI.

CORBA is a remote procedure call interface, like RMI or SunRPC. More 
generally it's a form of interprocess communication, in the same class 
as pipes, message queues, and TCP connections. If you want to implement 
this as client/server or peer-to-peer or some other model where the C 
and the Java are in two separate processes, then CORBA is one way to do it.

If you want to embed a JVM into another program, The JNI specification 
is at <http://java.sun.com/j2se/1.5.0/docs/guide/jni/index.html>. The 
document describes functions for creating a JVM as well as for calling 
native code from Java. I haven't done it myself, but the spec looks 
pretty straightforward.


More information about the vox-tech mailing list