[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