Purpose of com.ibm.oti.vm.bootstrap.library.path on AIX j9vm JVM -
background
i have c++ program loads jvm internally , uses jni call code in jvm. runs on multiple platforms including aix. however, when starting jvm on aix fine until call code needs access native code supplied part of jre. run error message:
java.lang.unsatisfiedlinkerror: net (not found in com.ibm.oti.vm.bootstrap.library.path) the problem jvm cannot find shared library libnet.so. if dump value of com.ibm.oti.vm.bootstrap.library.path system property java code running in jvm see default (i.e. not me setting it) has value:
<jre-base-dir>/lib/ppc/default:<jre-base-dir>/lib/ppc from error message guessed idea change include dir libnet.so located. however, shared library in <jre-base-dir>/lib/ppc in path set com.ibm.oti.vm.bootstrap.library.path, seems error message incorrect.
experimenting different values system property makes me believe used aix j9vm load internal jvm shared libraries (like libjclse7b_26.so) not native code implementations (like libnet.so).
my fix
to fix problem had change libpath environment variable (which aix equivalent of ld_library_path in e.g. linux).
$ libpath=<jre-base-dir>/lib/ppc:<jre-base-dir>/lib/ppc/j9vm ./myprogram questions
can shed light on real purpose of system property
com.ibm.oti.vm.bootstrap.library.pathon aix when using j9vm jvm?is fix correct way solve problem or should use other system property? (i have tried
java.library.pathnot seem help.)
in case show error message:
java.lang.unsatisfiedlinkerror: awt (not found in com.ibm.oti.vm.bootstrap.library.path)
i fix problem copy /usr/java6_64/jre/lib/ppc64/libawt.so /usr/java6_64/jre/lib/ppc64/j9vm , create symbolic link libawt.a libawt.so
i set ld_library_path ld_library_path="/usr/java6_64/jre/lib/ppc64:/usr/java6_64/jre/lib/ppc64/j9vm"; export ld_ library_path
Comments
Post a Comment