应用用户要用到java 6的环境,但总是报错,如下:
%/opt/java6/bin/java -version
/usr/lib/dld.sl: Can't find path for shared library: libjli.sl
/usr/lib/dld.sl: No such file or directory
Abort(coredump)
而如果使用root用户执行的话,就没有问题
[root@abptst5:/opt/java6/bin#]./java -version
java version "1.6.0.04"
Java(TM) SE Runtime Environment (build 1.6.0.04-jinteg_28_apr_2009_04_46-b00)
Java HotSpot(TM) Server VM (build 11.3-b02-jre1.6.0.04-rc2 PA2.0 (aCC_AP), mixed mode)
[root@abptst5:/opt/java6/bin#]id
uid=0(root) gid=3(sys) groups=0(root),1(other),2(bin),4(adm),5(daemon),6(mail),7(lp),20(users)
从网上找了一个方法,就是应用用户设置SHLIB_PATH的环境变量,指向/opt/java6/jre/lib/PA_RISC2.0/jli,但是尝试之后却不一定管用.
很明显这个问题的现象是root用户有权限调用libjli.sl文件,而应用用户则没有权限.
将/opt/java6/jre目录的权限调整为755之后,问题就解决了.
chmod -R 755 /opt/java6/jre/[@more@]