From: Marcelo M. <mar...@us...> - 2006-01-02 11:43:46
|
Update of /cvsroot/swig/SWIG/Examples/perl5/java In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6314/Examples/perl5/java Added Files: Example.java Makefile example.i runme.pl Log Message: add the java example --- NEW FILE: example.i --- %module example %{ #undef STATIC %} %include <gcj/cni.i> %include <jstring.i> %{ #undef TRUE #define TRUE 1 %} %{ #include "Example.h" %} %include Example.h --- NEW FILE: Example.java --- public class Example { public int mPublicInt; public Example() { mPublicInt = 0; } public Example(int IntVal) { mPublicInt = IntVal; } public int Add(int a, int b) { return (a+b); } public float Add(float a, float b) { return (a+b); } public String Add(String a, String b) { return (a+b); } public Example Add(Example a, Example b) { return new Example(a.mPublicInt + b.mPublicInt); } } --- NEW FILE: Makefile --- CXX = gcj TOP = ../.. SWIG = $(TOP)/../preinst-swig CXXSRCS = TARGET = example INTERFACE = example.i LIBS = -lm all:: Example.class $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' CXX="gcj" CFLAGS="-fPIC" \ CXXSHARED="gcj -fPIC -shared Example.class" PERL5_CCFLAGS='' PERL5_EXP='' perl5_cpp clean:: $(MAKE) -f $(TOP)/Makefile perl5_clean rm -f *.class Example.h check: all run: perl runme.pl Example.class: Example.java gcj -v || exit 0 gcj -fPIC -C -c -g Example.java gcjh Example --- NEW FILE: runme.pl --- use example; example::JvCreateJavaVM(undef); example::JvAttachCurrentThread(undef, undef); $e1 = new example::Example(1); print $e1->{mPublicInt},"\n"; $e2 = new example::Example(2); print $e2->{mPublicInt},"\n"; $i = $e1->Add(1,2); print $i,"\n"; $d = $e2->Add(1.0,2.0); print $d,"\n"; $d = $e2->Add("1","2"); print $d,"\n"; $e3 = $e1->Add($e1,$e2); print $e3->{mPublicInt},"\n"; example::JvDetachCurrentThread() |