千家信息网

Oracle中怎么解决Exception in thread main问题

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"Oracle中怎么解决Exception in thread main问题"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况
千家信息网最后更新 2026年11月01日Oracle中怎么解决Exception in thread main问题

本篇内容介绍了"Oracle中怎么解决Exception in thread main问题"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

此文章是在AIX操作系统正确安装了CDE前提下进行进行说明的。

在安装了Oracle的服务器上运行dbca 命令,报错:

[oracle@stone_db ~]$ dbca

Exception in thread "main"

[oracle@stone_db ~]$

[oracle@stone_db ~]$ export DISPLAY=1921.68.1.210:0.0

[oracle@stone_db ~]$ dbca

Exception in thread "main"

其实不止是执行dbca会报错,只要执行需要弹出图形窗口的命令都会有这样的问题。

大部分情况下我们会认为是DISPLAY变量的问题,但是也不尽然,我们查看一下dbca的log 日志:

[oracle@stone_db scripts]$ cd $ORACLE_HOME/cfgtoollogs/dbca

[oracle@stone_db dbca]$ ls

trace.log

[oracle@stone_db dbca]$ cat trace.log

java.lang.UnsatisfiedLinkError:/home/Oracle_app_10204/jdk/jre/lib/i386/libawt.so:

libXp.so.6: cannot openshared object file: No such file or directory

at java.lang.ClassLoader$NativeLibrary.load(Native Method)

at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1586)

at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1503)

at java.lang.Runtime.loadLibrary0(Runtime.java:788)

at java.lang.System.loadLibrary(System.java:834)

at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)

at java.security.AccessController.doPrivileged(Native Method)

at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:38)

atsun.awt.DebugHelper.(DebugHelper.java:29)

at java.awt.Component.(Component.java:506)

at oracle.sysman.assistants.util.wizard.WizardObject.(WizardObject.java:64)

at oracle.sysman.assistants.dbca.ui.DBCAWizard.(DBCAWizard.java:425)

at oracle.sysman.assistants.dbca.ui.UIHost.(UIHost.java:214)

at oracle.sysman.assistants.dbca.ui.InteractiveHost.(InteractiveHost.java:54)

at oracle.sysman.assistants.dbca.Dbca.getHost(Dbca.java:160)

at oracle.sysman.assistants.dbca.Dbca.execute(Dbca.java:94)

at oracle.sysman.assistants.dbca.Dbca.main(Dbca.java:180)

原因很明显缺包:

libXp.so.6: cannot open shared object file:No such file or directory

验证一下包:

[oracle@stone_db dbca]$ rpm -qa|grep libXp

libXpm-devel-3.5.5-3

libXpm-3.5.5-3

安装libXp :

[root@stone_db Server]# ll

-rwxrwSrwx 1 root root 22996 2007-07-26libXp-1.0.0-8.1.el5.i386.rpm

-rwxrwSrwx 1 root root 15262 2007-07-26libXp-devel-1.0.0-8.1.el5.i386.rpm

[root@stone_db Server]# rpm -ivh libXp*.rpm

warning: libXp-1.0.0-8.1.el5.i386.rpm:Header V3 DSA signature: NOKEY, key ID 37017186

Preparing... ########################################### [100%]

1:libXp ########################################### [ 50%]

2:libXp-devel ########################################### [100%]

[root@stone_db Server]# rpm -qa|grep libXp

libXpm-devel-3.5.5-3

libXp-1.0.0-8.1.el5

libXpm-3.5.5-3

libXp-devel-1.0.0-8.1.el5

再次执行dbca成功:

[root@stone_db ~]# xhost +

access control disabled, clients canconnect from any host

[root@stone_db ~]# su - oracle

[oracle@stone_db ~]$ export DISPLAY=192.168.1.210:0.0

[oracle@stone_db ~]$ dbca

另外一种情况就是不缺包,用oracle用户直接登录可以执行dbca顺利打开图形窗口。用root登录xshell然后执行xhost +,

再切换su - oracle 改变用户身份,结果执行dbca不能打开图形窗口。

用root登录CDE,

bash-3.2# xhost +

access control disabled, clients can connect from any host

bash-3.2# su - oracle

[oracle@aix275 ~]# dbca

DISPLAY not set.

Set DISPLAY environment variable, then re-run.

[oracle@aix275 ~]# who

root tty0 Jul 08 06:32

root pts/0 Jul 08 05:49 (192.168.1.210)

oracle pts/1 Jul 08 05:56 (192.168.1.210)

root pts/2 Jul 08 05:58 (192.168.1.210)

root dtremote Jul 08 06:34 (192.168.1.210:0)

root pts/3 Jul 08 06:34 (192.168.1.210:0.0)

root pts/4 Jul 08 00:53 (192.168.1.210)

[oracle@aix275 ~]# export DISPLAY=192.168.1.210:0.0

[oracle@aix275 ~]# dbca

正常打开图形窗口。

但是在xshell下,执行同样步骤却不能打开图形窗口。

查看trace.log文件发现DISPLAY变量设置的不正确,不能使用192.168.1.210:0.0

[oracle@aix ~]# cat /database/product/10.2.0/db_1/cfgtoollogs/dbca/trace.log

java.lang.InternalError: Can't connect to X11 window server using '192.168.1.210:0.0' as the

value of the DISPLAY variable.

at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)

at sun.awt.X11GraphicsEnvironment.(X11GraphicsEnvironment.java:175)

at java.lang.Class.forName1(Native Method)

at java.lang.Class.forName(Class.java:180)

at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment

(GraphicsEnvironment.java:91)

at java.awt.Font.initializeFont(Font.java:333)

at java.awt.Font.(Font.java:368)

at oracle.ewt.lwAWT.LWComponent.(Unknown Source)

at oracle.sysman.assistants.util.wizard.WizardObject.(WizardObject.java:64)

at oracle.sysman.assistants.dbca.ui.DBCAWizard.(DBCAWizard.java:425)

at oracle.sysman.assistants.dbca.ui.UIHost.(UIHost.java:214)

at oracle.sysman.assistants.dbca.ui.InteractiveHost.(InteractiveHost.java:54)

at oracle.sysman.assistants.dbca.Dbca.getHost(Dbca.java:160)

at oracle.sysman.assistants.dbca.Dbca.execute(Dbca.java:94)

at oracle.sysman.assistants.dbca.Dbca.main(Dbca.java:180)

后来打开多个图形终端,然后用who命令查看。

[root@aix /]# who

root tty0 Jul 08 06:32

root pts/0 Jul 08 05:49 (192.168.1.210)

oracle pts/1 Jul 08 05:56 (192.168.1.210)

root pts/2 Jul 08 05:58 (192.168.1.210)

root dtremote Jul 08 06:34 (192.168.1.210:0)

root pts/3 Jul 08 06:34 (192.168.1.210:0.0)

root dtremote Jul 08 00:53 (192.168.1.210:1)

oracle dtremote Jul 08 06:44 (192.168.1.210:2)

oracle dtremote Jul 08 06:51 (192.168.1.210:3)

通过观察不难发现一个规律,也就是第一个打开的图形终端为IP:0,在里面执行dbca弹出的图形窗口为IP:0.0。

第二个打开的图形窗口占用的终端序号为IP:1,在其内部执行dbca命令弹出窗口则为IP:1.0。后面打开的终端以此类推序号。

那么我们打开的Xshell其实也是一个终端,只不过平时占用的是字符终端,当我们执行dbca的时候会弹出图形窗口,

因此这个时候也会占用一个图形终端序号,经上述推理,也就很容易在Xshell终端设置正确的DISPLAY参数了,

也就是看一下我们要打开的是占用第几个图形终端,假定为n,那么我们设置

DISPLAY参数值就为"打开终端所在计算机的IP:n-1.0"。

那么回过头来再想一下,为什么用oracle用户直接登录就不存在任何题呢,而用root用户登录再su到oracle用户身份就出

现这个报错呢。其实很简单,我们不论用哪个用户身份登录到一个终端的时候执行echo DISPLAY发现默认设置好了一个值就

是localhost:n.0,当我们切换用户身份以后再执行echo DISPLAY发现这个值不见了,此时就需要我们认为设定这个值了,指定

在哪个终端打开图形窗口。

回想一下网上的帖子设置的DISPLAY参数都是IP:0.0,也就是在打开的第一个图形终端里设置的,或者是在没有打开图形

终端时在命令行终端里设置的情况。

"Oracle中怎么解决Exception in thread main问题"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

图形 终端 用户 登录 命令 问题 情况 身份 也就是 参数 序号 时候 是在 内容 变量 就是 更多 知识 切换 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网高科技 上海睿民互联网科技有限公司 云信互联网科技有限公司 互联网科技有限公司经营范围 科技互联网政务服务 美国互联网科技 互联网 的科技创新 奇酷互联网络科技 上海喔噻互联网科技 米客互联网科技 随着互联网科技发展 银川新华互联网科技职业技术培训学校图片 荆州市昕露互联网络科技有限公司 厦门千工互联网科技有限公司 杭州壁岐互联网科技有限公司 亳州好赞互联网科技有限公司 互联网科技公司营业执照怎么办理 烟台灵鸽互联网科技有限公司 互联网公司属于科技吗 广州三三互联网科技有限公司 互联网高科技 互联网佳科技有限公司 新华互联网科技学校 科技与互联网 厦门中拓互联网络科技有限公司 北京互联网络科技有限公司 互联网还是高科技吗 长沙茂晟互联网科技有限公司 互联网科技收购价值 北京军民互联网科技公司
0