From: William S F. <ws...@fu...> - 2013-09-12 17:54:49
|
On 12/09/13 15:06, Mathieu Malaterre wrote: > Hi, > > Let's assume for a minute that I am trying to work on patches#253 > (Add wrapping for std::set in Java). > > Here is what I did: > > [clone git from github] > $ ./autogen.sh > $ ./configure --without-tcl --without-perl5 --without-python > --without-ruby --without-octave --without-php > --with-java=/usr/bin/java --with-javac=/usr/bin/javac > --without-chicken --with-javaincl=$JAVA_HOME/include > $ make > $ (cd Examples/java/class && make && env LD_LIBRARY_PATH=. java main) > > As per reading: > http://www.dabeaz.com/cgi-bin/wiki.pl?DeveloperInfo/GettingStarted > Fairly recently, this got more automated and those pages need updating now for the examples. > However it fails with: > > g++ -c -fpic example.cxx example_wrap.cxx > -I"/usr/lib/jvm/default-java/include" > -I"/usr/lib/jvm/default-java/include" > g++ -shared example.o example_wrap.o -o libexample.so > make[1]: Leaving directory `/home/mathieu/Projects/swig/Examples/java/class' > javac *.java > Exception in thread "main" java.lang.NoClassDefFoundError: main > Caused by: java.lang.ClassNotFoundException: main > at java.net.URLClassLoader$1.run(URLClassLoader.java:217) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:205) > at java.lang.ClassLoader.loadClass(ClassLoader.java:321) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) > at java.lang.ClassLoader.loadClass(ClassLoader.java:266) > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:334) > Could not find the main class: main. Program will exit. > > I can't really see anything wrong with that, other than javac might not be as you configured '/usr/bin/javac'. Likewise with /usr/bin/java. The versions given during configure are now used in the latest, try now instead with: $ (cd Examples/java/class && make check) make -f ../../Makefile CXXSRCS='example.cxx' SWIG='../../../preinst-swig' \ SWIGOPT='' TARGET='example' INTERFACE='example.i' java_cpp make[1]: Entering directory `/home/william/swig/github/swig/Examples/java/class' ../../../preinst-swig -java -c++ example.i g++ -c -fpic -I/usr/include example.cxx example_wrap.cxx -I"/usr/lib/jvm/java-1.6.0-openjdk/include" -I"/usr/lib/jvm/java-1.6.0-openjdk/include/linux" g++ -shared -I/usr/include example.o example_wrap.o -o libexample.so make[1]: Leaving directory `/home/william/swig/github/swig/Examples/java/class' make -f ../../Makefile JAVASRCS='*.java' JAVAFLAGS='' java_compile make[1]: Entering directory `/home/william/swig/github/swig/Examples/java/class' javac *.java make[1]: Leaving directory `/home/william/swig/github/swig/Examples/java/class' make -f ../../Makefile java_run make[1]: Entering directory `/home/william/swig/github/swig/Examples/java/class' env LD_LIBRARY_PATH=. /usr/bin/java runme Creating some objects: Created circle Circle@1f33675 Created square Square@7c6768 A total of 2 shapes were created Here is their current position: Circle = (20.0 30.0) Square = (-10.0 5.0) Here are some properties of the shapes: Circle@1f33675 area = 314.1592653589793 perimeter = 62.83185307179586 Square@7c6768 area = 100.0 perimeter = 40.0 Guess I'll clean up now 0 shapes remain Goodbye make[1]: Leaving directory `/home/william/swig/github/swig/Examples/java/class' > Is there any documentation for dev to get up to speed quickly ? For > instance how does one run one test-case in particular, let's call it > Examples/test-suite/java/li_std_set_runme.java ? > See http://www.swig.org/Doc2.0/Extending.html#Extending_test_suite for writing tests. Most of the testing is done on Ubuntu, so you really shouldn't struggle on Debian. William |