That error message refers to a method that takes a String *array*, not a String. Make sure your java and native code are in sync, and that the library is in java.library.path
http://technojeeves.com/jo
Main Topics
Browse All TopicsI have
libBoincResolve.so
and base/Connector.class
Connector.class
has
public static native String BoincResolve(String filename);
and does
System.loadLibrary("BoincR
BoincResolve("in");
When "BoincResolve" executes, I get:
Exception in thread "main" java.lang.UnsatisfiedLinkE
I can see that it's trying to find BoincResolve inside base.Connector, but I'm not sure why that is, and thus not what I can do about it either.
Please advise. Let me know if more information is necessary.
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
That error message refers to a method that takes a String *array*, not a String. Make sure your java and native code are in sync, and that the library is in java.library.path
http://technojeeves.com/jo
dravidnsr: Thanks, will have a look at them
CEHJ: I don't see that array, could you elaborate? If that was the case, then would the problem be in
public static native String BoincResolve(String filename); ?
a_b:
java -Djava.library.path=/home/
executed from /home/letharion/GTBoinc/SQ
libBoincResolve.so is in both SQLdb/ and base/
> That error message refers to a method that takes a String *array*, not a String.
If this were the case, I would expect to see a "[" in the signature for the parameter right?
I see only
L<fully qualified class name>
Which I would expect to be a String.
See Type Signatures:
http://java.sun.com/j2se/1
Is this on a *nix platform? Is LD_LIBRARY_PATH set correctly?
>I would rebuild your native code to be on the safe side.
This turned out to be the issue. First I build a nativetest project separately from everything else, it worked well. When integrating with the rest of my code, I got this problem. Upon closer examination, it turns out that the header file for c code was incorrect. I had manually updated what I thought was the important parts, but when I created a new header with javah, I noticed that the new header file has a signature with
(JNIEnv *, jclass, jstring), where the old had (JNIEnv *, jobject, jstring)
Not sure why one wants a class and one an object, but that was it.
Lesson learned, make javah -jni part of the build process.
Business Accounts
Answer for Membership
by: dravidnsrPosted on 2009-11-04 at 09:13:00ID: 25741533
http://www.experts-exchang e.com/Prog ramming/La nguages/Ja va/ J2SE/JN I/Q_241751 70.html
ad.jspa?th readID=531 3131
http://forums.sun.com/thre