centos5 运行 dbca 和 netmgr 出错
$ dbca // 无法启动 dbca,提示错误如下: /opt/oracle/jre/1.1.8/bin/../lib/i686/green_threads/libzip.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference (libzip.so) Unable to initialize threads: cannot find class java/lang/Thread Could not create
Java VM
解决方法 Case:JRE 的版本不对, Oracle 一般使用的 JRE 是 1.1.8 到$ORACLE_BASE/jre 目录下,发现 Oracle 本身已经有 1.3.1 版的 JRE #ls $ORACLE_BASE/jre 1.1.8/ 1.3.1/ Fix:只要改变一下链接使用 1.3.1 的 JRE 就可以了。(可以查看 dbca 的 script) 1. $cd $ORACLE_HOME ; mv JRE JRE.bak (此 JRE 目录是 1.1.8 的符号链接)
2. $ln -s $ORACLE_BASE/jre/1.3.1 $ORACLE_HOME/JRE 3. $cd $ORACLE_BASE/jre/1.3.1/bin 4. $ln -s $ORACLE_BASE/jre/1.3.1/bin/.java_wrapper 5. $cd i386/native_threads 6. $ln -s java jre jre
$netca [ora9i@suk 9204]$ netmgr Exception in thread "main" java.lang.VerifyError: (class: oracle/net/mgr/servicename/DBPanel$1, method: actionPerformed signature: (Ljava/awt/event/ActionEvent;)V) Illegal use of nonvirtual function call 遇到类似这样的错误的话,不要慌,解决方法是修改 netmgr 脚本:
[ora9i@suk 9204]$ vi /opt/ora9i/product/9204/bin/netmgr 修改 # Run Net Manager $JRE -classpath $CLASSPATH oracle.net.mgr.container.NetApplication oracle.net.mgr.container.NetApplication 为: # Run Net Manager $JRE -noverify -classpath $CLASSPATH oracle.net.mgr.container.NetApplication oracle.net.mgr.container.NetApplication It’s OK!