Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / November 2007

Tip: Looking for answers? Try searching our database.

java.lang.UnsatisfiedLinkError - native method

Thread view: 
andrej.frelih@gmail.com - 13 Nov 2007 14:05 GMT
Hello.

I have one problem regarding the native method compilation.
I get the following error for ONLY ONE FUNCTION THAT I RECENTLY ADDED:

Exception in thread "main" java.lang.UnsatisfiedLinkError: helloworld
       at
com.hp.openview.ib.api.jopc.JOpcApplication.helloworld(Native Method)
       at
com.hp.openview.ib.api.jopc.JOpcApplication.hellokrava(JOpcApplication.java:
854)
       at OpcApplication.main(OpcApplication.java:40)

For example the old function ApplModify  and ApplGet work fine.

One thing that i have noticed when i run nm(prints the list of common
object names) on the compiled library
is that my NEWLY added helloworld function contains this "__Fv" at the
end of the name that is why i think it cannot be found by the java
class. So i think it is a problem with the library compilation, but i
don't know where to look.

ApplGet|     36088|extern|code   |$CODE$
ApplGet|     36088|extern|entry  |
ApplModify|     36232|extern|code   |$CODE$
ApplModify|     36232|extern|entry  |
helloworld__Fv|     36496|extern|entry  |
helloworld__Fv|     36496|extern|code   |$CODE$

Does anyone have an idea please, or needs more information(code
snapshots).

Regards,
 Andrej
Gordon Beaton - 13 Nov 2007 14:19 GMT
> Exception in thread "main" java.lang.UnsatisfiedLinkError: helloworld

[...]

> my NEWLY added helloworld function contains this "__Fv" at the end
> of the name that is why i think it cannot be found by the java
> class.

How (exactly) do you compile the native library? Are you using a C
compiler, or a C++ compiler?

Is the failing method declared with extern "C"? It should be, and it
will be if you exactly obeyed the declaration that javah provided for
you in the generated header file. If the signature of your
implementation differs from that in the header file, the extern "C"
javah provided is no longer helping you.

/gordon

--
andrej.frelih@gmail.com - 13 Nov 2007 15:45 GMT
> > Exception in thread "main" java.lang.UnsatisfiedLinkError: helloworld
>
[quoted text clipped - 6 lines]
> How (exactly) do you compile the native library? Are you using a C
> compiler, or a C++ compiler?

I am using the hp-ux aC++ compiler.

> Is the failing method declared with extern "C"? It should be, and it
> will be if you exactly obeyed the declaration that javah provided for
> you in the generated header file. If the signature of your
> implementation differs from that in the header file, the extern "C"
> javah provided is no longer helping you.

Functions are all marked with extern "C" and i did obey the
declaration( at least i hope so)
of javah.

The .h file looks like that:

extern "C" {
JNIEXPORT jint JNICALL Java_helloworld
(JNIEnv *, jobject);

JNIEXPORT jint JNICALL Java_ApplModify
(JNIEnv *, jobject, jlong, jlong, jlong);

.... there are more functions

}

I very much appreciate your help Gordon.
Need more code?
Regards,
A

> /gordon
>
> --
Gordon Beaton - 13 Nov 2007 17:45 GMT
> I am using the hp-ux aC++ compiler.

And your command line?

> Functions are all marked with extern "C" and i did obey the
> declaration( at least i hope so) of javah.
>
> The .h file looks like that:

Of course the generated header file is correct. What does *your* file
look like, in particular the failing method? Do you include the header
file?

/gordon

--


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.