From: Ricardo O. <n3...@ho...> - 2009-04-30 17:53:06
|
Hi, Thanks for the reply. I updated the swig version (I had a distribution package, and installed a tar.gz from the site) to the latest: SWIG Version 1.3.39 Compiled with g++ [i686-pc-linux-gnu] And I still have the same problem. Not sure what you mean by javac command being correct for packages, there's no difference between compiling with or without packages, only the placement of the class files matters. And I compiled several other packages successfully which are working. Only, in this situation, I get this problem. This is really strange, as it makes no sense, it should simply work. I'm totally puzzled here, do you have any suggestions? Thanks, Ricardo. > Date: Thu, 30 Apr 2009 07:46:50 +0100 > From: ws...@fu... > To: n3...@ho... > CC: swi...@li... > Subject: Re: [Swig-user] Java Library problem > > Ricardo Oliveira wrote: > > Hi, > > > > I'm having a problem with loading a library after using swig. > > Putting it quite simply: > > - If I convert the cpp code using "swig -c++ -java myfile.i", my main > > code is able to access the library perfectly and everything is executed > > properly: > > > > -- clip - main.java > > public class main { > > public static void main(String argv[]) { > > System.loadLibrary("nipper_wrapper"); > > nipper_wrapper.start_nipper(2,argv); > > } > > } > > -- clip - main.java > > > > Command line: java main > > > > - If I add the "-package" parameter (e.g.: "swig -c++ -java -package com > > myfile.i") and add "package com;" to the top of my main.java file, when > > executing (java com.main), I get the following result: > > > > Exception in thread "main" java.lang.UnsatisfiedLinkError: > > com.nipper_wrapperJNI.start_nipper(I[Ljava/lang/String;)I > > at com.nipper_wrapperJNI.start_nipper(Native Method) > > at com.nipper_wrapper.start_nipper(nipper_wrapper.java:18) > > at com.main.main(main.java:6) > > > > -- clip -- nipper_wrapperJNI > > /* > > ---------------------------------------------------------------------------- > > * This file was automatically generated by SWIG (http://www.swig.org). > > * Version: 1.3.21 > > * > > * Do not make changes to this file unless you know what you are > > doing--modify > > * the SWIG interface file instead. > > * > > ----------------------------------------------------------------------------- > > */ > > > > class nipper_wrapperJNI { > > .... > > public final static native int start_nipper(int jarg1, String[] jarg2); > > } > > -- clip -- nipper_wrapperJNI > > > > So, in summary, the library is getting loaded, but for some reason, > > when the java code is in a package, and I try to access the library, I > > get this weird error, as if it was mapping the java package to the c++ > > library... > > > > Java version: > > > > java version "1.6.0_11" > > Java(TM) SE Runtime Environment (build 1.6.0_11-b03) > > Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing) > > > > Swig version: > > > > SWIG Version 1.3.21 > > Copyright (c) 1995-1998 > > University of Utah and the Regents of the University of California > > Copyright (c) 1998-2003 > > University of Chicago > > Compiled with g++ [i686-redhat-linux-gnu] > > > This version is five years old. Quite possibly a newer version has fixed > this problem as I don't see anything obviously wrong that you have done. > You might also not have a clean build, ie some .class files lying around > that are not in the right package. Also you need to make sure your javac > command is correct for packages. Try out on a pure Java package first. > > William _________________________________________________________________ Invite your mail contacts to join your friends list with Windows Live Spaces. It's easy! http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us |