Dynamically loaded modules

David Marceau dmarceau@8d.com
Thu May 10 11:41:00 GMT 2001


Tom Tromey wrote:
> 
> >>>>> "Jim" == jim  <jim@weathercom.com> writes:
> 
> Jim> How well do programs compiled with gcj handel serialized objects
> Jim> and JavaBeans?  I'm working on a app that needs to load modules
> Jim> on startup to modify it's GUI and behavior.  Any ideas how gcj
> Jim> would handle that?
> 
> gcj serialization is compatible with the JDK.  We believe it is
> complete, but you will probably find the occasional bug.
> 
> I don't know anything about beans.  gcj doesn't have any java-style
> GUI capability (no AWT or Swing -- but there is a gnome-gcj).
> 
> libgcj can load bytecode just like other VMs, at least on platforms
> where the interpreter works (x86, alpha, ppc, ia64).  libgcj can also
> load precompiled java code (shared objects).
> 
> Tom
Hi there Mr. Tromey :)

Being that you're talking about loading shared objects with libgcj, I
have a question.

Question:
I have libsampNat.so which contains an CNI-based servic(not JNI) that I
compiled with gcj -shared.
How do I run gij in order to have sample.class loadLibrary("sampNat")
like the jni example gets loaded up in the gcj/JNI example in the gcj
faq.

The files in question are attached.

Thanks for taking the time.
--
Santé bonheur :)
David Marceau
sample.java
sampNat.cc
runit2.scr
Makefile
sample.h

-------------- next part --------------
#GPLUSPLUS_INCLUDE_DIR=/root/testlibjava/gcc/include:/root/testlibjava/gcc/libjava/include:/root/testlibjava/gcc/libjava:/root/testlibjava/gcc/libjava/gcj:/root/testlibjava/gcc/include/gcj:/root/testlibjava/compile/objdir/i686-pc-linux-gnu/libjava/include:/root/testlibjava/compile/objdir/i686-pc-linux-gnu/libjava:$GPLUSPLUS_INCLUDE_DIR
CLASSPATH=/root/testlibjava/gcc/share/libgcj.jar
LD_LIBRARY_PATH=/root/testlibjava/gcc/lib:.:$LD_LIBRARY_PATH

libsampNat.so: sampNat.o
	echo "Making libsampNat.so..."
	/root/testlibjava/gcc/bin/gcj \
	-I/root/testlibjava/gcc/libjava/include \
	-I/root/testlibjava/gcc/libjava \
	-I/root/testlibjava/gcc/libjava/gcj \
	-I/root/testlibjava/gcc/include/gcj \
	-I/root/testlibjava/compile/objdir/i686-pc-linux-gnu/libjava/include \
	-I/root/testlibjava/compile/objdir/i686-pc-linux-gnu/libjava \
	-shared \
	-o libsampNat.so sampNat.o \
	-lstdc++ 
	#--main=sample

sample.o:  sample.class
	echo "making sample.o..."
	/root/testlibjava/gcc/bin/gcj \
	-c sample.class \
	-I/root/testlibjava/gcc/include \
	-I/root/testlibjava/gcc/libjava/include \
	-I/root/testlibjava/gcc/libjava \
	-I/root/testlibjava/gcc/libjava/gcj \
	-I/root/testlibjava/gcc/include/gcj \
	-I/root/testlibjava/compile/objdir/i686-pc-linux-gnu/libjava/include \
	-I/root/testlibjava/compile/objdir/i686-pc-linux-gnu/libjava
	#/root/testlibjava/gcc/bin/gcj -I/root/testlibjava/gcc/libjava/include -I/root/testlibjava/gcc/libjava -I/root/testlibjava/gcc/libjava/gcj -I/root/testlibjava/gcc/include/gcj -I/root/testlibjava/compile/objdir/i686-pc-linux-gnu/libjava/include -I/root/testlibjava/compile/objdir/i686-pc-linux-gnu/libjava -c sample.class

sample.class: sample.java
	echo "making sample.class..."
	/root/testlibjava/gcc/bin/gcj \
	--classpath=/root/testlibjava/gcc/share/libgcj.jar:. \
	-C sample.java

sample.h: sample.class
	echo "making sample.h..."
	/root/testlibjava/gcc/bin/gcjh \
	--classpath=/root/testlibjava/gcc/share/libgcj.jar:. \
	sample
	#/root/testlibjava/gcc/bin/g++ 

sampNat.o: sample.h sampNat.cc
	echo "making sampNat.o..."
	/root/testlibjava/gcc/bin/g++ \
	-I/root/testlibjava/gcc/include \
	-I/root/testlibjava/gcc/libjava/include \
	-I/root/testlibjava/gcc/libjava \
	-I/root/testlibjava/gcc/libjava/gcj \
	-I/root/testlibjava/gcc/include/gcj \
	-I/root/testlibjava/compile/objdir/i686-pc-linux-gnu/libjava/include \
	-I/root/testlibjava/compile/objdir/i686-pc-linux-gnu/libjava \
	-fno-rtti \
	-c sampNat.cc

clean:
	echo "cleaning..."
	rm -f sample sample.o sampNat.o sample.class sample.h
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sample.h
Type: text/x-c++
Size: 478 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/java/attachments/20010510/e61938c2/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sample.java
Type: text/x-c
Size: 396 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/java/attachments/20010510/e61938c2/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: sampNat.cc
Type: text/x-c
Size: 433 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/java/attachments/20010510/e61938c2/attachment-0002.bin>


More information about the Java mailing list