This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: java to native code and Sun JVM alternatives


On 03/11/2010 11:45 AM, wagde wrote:
> 
> I'm working on a project which have java code (and c++), and until ow I used
> javac to compile the code and java to run the classes and JNI to call java
> from c++ code.
> 
> I don't want to use javac, javah, and java, ...(sun stuff) because of
> royalties issues...

OpenJDK is free software, but let's press on...

> I'm looking for alternatives.
> 
> What I see right now are two alternatives:
> 1. compile my java code to native code using gcj, and link it with the c++
> code.
> 2. keep the classes and use the gij instead of java.
> 
> I start working on the two approaches in parallel and I'm having too many
> problems in both them. So I need some REAL help here.
> 
> Problem with 1.
> 1. I succeeded to compile my java code (after chaning the syntax) using gcj
> to linux "c" object files. But in the linkage to the binary, I got too many
> "undefined reference to", ... because I use external "jars" (like axis)
> which are not compiled to native. I try to compile the axis jar to c and get
> too many compilation errors.

Compiling Java code with -findirect-dispatch is probably your best
plan to solve this.  When an undefined class is discoveed, gcj's
runtime will try to load its class files.

> Problem with 2.
> I compiled all my classes with gcj. and the C code uses JNI to call it. But
> the JNI creates a JVM (JNI_CreateJavaVM)!!! which I don't want to use.

Why not?  This is fully supported by gcj, and doesn't hurt anything.

> I want to use gij instead. So I wanted to know if there is anyway to
> let my JNI code to ceate a gij VM and and java VM. is there anything
> like this ?!  If not, how can I use the classes I compiled with gcj
> from the c code without using the JAVA VM?  CNI? does that mean that
> I should convert my jni code to cni?

No, there's no need to do that.  JNI code should work with gcj just
fine.  

Andrew.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]