• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

JNI problem in hp-ux 10.20

 
Ranch Hand
Posts: 126
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi all:
I have a problem using jni in hp-ux 10.20. We are using jdk1.1.8. (these are project requirements).
In hp-ux 10.20, g++ is not working when we use jni...it is throwing UnsatisfiedLinkError. Could anyone help me how to use jni with g++ complier and ld linker in hp-ux 10.20?
I tried the alternate way to resolve this problem as follows:
jni works fine with the aCC compiler. In our project, many programs had been compiled using g++. So, what i thought was i would use aCC complier for the program that use jni and g++ for the remaining programs (since i can not compile all these programs using aCC for some other problems).
I would write here step by step what i had done...
Step 1: javac JNIExample.java
//this program invokes the native methods written in C++
Step 2: javah -jni JNIExample
//javah creates the header file JNIExample.h

Step 3: g++ -fpic -shared -c MyCPP.cpp
//this CPP program contains certain methods which are invoked by jniCPP.cpp
//the output of this step is MyCPP.o
Step 4:
/opt/aCC/bin/aCC +z +u4 -c $JNI_INCLUDE jniCPP.cpp
//this CPP program uses jni.h and defines methods (which are in JNIExample.h). I am using aCC complier so that it does not throw UnsatisfiedLinkError in hp-ux 10.20. since g++ compiler is not working in hp-ux 10.20 when we use jni
//the output of this step is jniCPP.o
Step 5:
ld -b -o libServer.sl jniCPP.o MyCPP.o
//link using 'ld' and create a shared library libServer.sl
//this library had been loaded in JNIExample.java
Step 6:
java JNIExample
//execute the program which invokes the native method
When i do Step 6, i get the following error:
/usr/lib/dld.sl: Unresolved symbol: __nw__FUi (code) from libServer.sl
SIGABRT 6* abort (generated by abort(3) routine)
Sig = 6; code = -1.
stackbase=79D7F000, stackpointer=79D7F1C0
Abort(coredump)

What i feel is: I used ( aCC compiler & produced one object file ) and also ( used g++ compiler & produced one object file)...so it could not link these two object files...i don't know what i am thinking is correct or not?
Could anyone please give me the solution either (to use g++ complier for jni successfully in hp-ux 10.20) or ( to resolve the problem occured when using aCC and g++ compilers)
Thanks a lot in advance...
Uma
 
Uma Viswanathan
Ranch Hand
Posts: 126
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I figured out the problem long back...just posting it over here...
1) The g++ compiler and aCC compiler use different name mangling scheme...So, it is NOT possible to link both these object files.
2) hp unix 10.20 does not support JNI with g++ compiler
3) hp unix 10.20 does not support STL
 
Sheriff
Posts: 7001
6
Eclipse IDE Python C++ Debian Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Which make sense why you are now looking at Runtime.exec(). Sorry we couldn't be more help, but I guess we don't have anyone here who is familiar enough with HPUX.
 
Uma Viswanathan
Ranch Hand
Posts: 126
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Frank Carver:
I had finished that work long back...since i was in a position to use (must use) g++ complier, i had written the code in C++ (socket programming) on hp-ux 10.20 [instead of jni]
I was looking for Runtime.exec() for the following reason:
A script should start the client and (servers, if loopback address)...i had written a java program to read an ini file and to start the servers (an exe and a .class files) using Runtime.exec()...the script will execute this java program in addition to some other works.
Thanks a lot for your helps.
Uma
 
reply
    Bookmark Topic Watch Topic
  • New Topic