>>>>> "Sreenivas" == Sreenivas Gummadidala <[EMAIL PROTECTED]> writes:
Sreenivas> thanx in advance for ur reply , i wanna a programme to
Sreenivas> run which is there in jdk1.2.2 tutorial from sun , java
Sreenivas> native interface, invoking jvm . i have j2sdk1.3
Sreenivas> blackdowns java on redhat6.1 ,
Sreenivas> i am compiling it with
Sreenivas> $ gcc -O -I/usr/local/j2sdk1.3/include
Sreenivas> -I/usr/local/j2sdk1.3/include/linux
Sreenivas> -L/usr/local/j2sdk1.3/jre/lib/i386 -ljava
Sreenivas> -shared invoke.c
Remove the '-shared' option and link with '-ljvm' instead of '-ljava'.
Also add '-lpthread' and '-D_REENTRANT':
Our 1.3 includes j2sdk-config which may help you with this:
% j2sdk-config --cflags
-D_REENTRANT -D_GNU_SOURCE -I/usr/lib/j2sdk1.3/include
-I/usr/lib/j2sdk1.3/include/linux
% j2sdk-config --libs
-L/usr/lib/j2re1.3/lib/i386/client -ljvm -lpthread
Sreenivas> JDK1_1InitArgs vm_args;
For HotSpot you have to use JavaVMInitArgs instead of JDK1_1InitArgs.
You might want to take a look at the Invocation example in our FAQ:
http://www.blackdown.org/java-linux/docs/support/faq-release/examples/invocation-in-C++/
With j2sdk-config the makefile can be somewhat simpler:
#
#
# See http://www.blackdown.org/java-linux/faq/FAQ-java-linux.html
# for more information.
#
# $Id: Makefile,v 1.1 1999/12/31 16:22:54 kreilede Exp $
#
#
J2SDK_CONFIG=j2sdk-config
#J2SDK_CONFIG=j2sdk-config -server
#J2SDK_CONFIG=j2sdk-config -native
JAVA_HOME=$(shell $(J2SDK_CONFIG) --javahome)
# The java tools:
JAVAC=$(JAVA_HOME)/bin/javac
JAVA=$(JAVA_HOME)/bin/java
JAVAH=$(JAVA_HOME)/bin/javah
CXXFLAGS=$(shell $(J2SDK_CONFIG) --cflags)
LIBS=$(shell $(J2SDK_CONFIG) --libs)
# The java source code
JAVA_SRC = example/HelloWorld.java
# The java class files
JAVA_CLASSES = $(JAVA_SRC:%.java=%.class)
all: helloworld $(JAVA_CLASSES) run
helloworld: helloworld.o
$(CXX) -o $@ $? $(LIBS)
helloworld.o: helloworld.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
run: helloworld $(JAVA_CLASSES)
LD_LIBRARY_PATH=$(shell $(J2SDK_CONFIG) --ld-library-path) ./helloworld
example/%.class: example/%.java
${JAVA_HOME}/bin/javac $<
clean:
$(RM) example/*.class example/*~ core *.o *.so *~ ./helloworld
Juergen
--
Juergen Kreileder, Blackdown Java-Linux Team
http://www.blackdown.org/java-linux.html
JVM'01: http://www.usenix.org/events/jvm01/