注册
Linux中打开DM管理工具报错解决方法记录
技术分享/ 文章详情 /

Linux中打开DM管理工具报错解决方法记录

### 2024/05/17 1728 3 0

问题:

麒麟V10安装完达梦数据库后无法打开DM管理工具,在tool目录下执行./manager报错如下:

!SESSION 2024-05-10 15:19:45.674 -----------------------------------------------
eclipse.buildId=M20110210-1200
java.version=22.0.1
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=zh_CN
Framework arguments:  -product com.dameng.manager.product
Command-line arguments:  -os linux -ws gtk -arch x86_64 -data /home/aa/src/dmdbms/tool/workspace/data/manager -product com.dameng.manager.product

!ENTRY org.eclipse.osgi 4 0 2024-05-10 15:19:45.892
!MESSAGE error loading hook: org.eclipse.osgi.internal.baseadaptor.BaseHookConfigurator
!STACK 0
java.lang.reflect.InaccessibleObjectException: Unable to make protected void java.net.URLClassLoader.addURL(java.net.URL) accessible: module java.base does not "opens java.net" to unnamed module @445b84c0
	at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:388)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:364)
	at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:312)
	at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:203)
	at java.base/java.lang.reflect.Method.setAccessible(Method.java:197)
	at org.eclipse.osgi.internal.baseadaptor.BaseStorage.findMethod(BaseStorage.java:167)
	at org.eclipse.osgi.internal.baseadaptor.BaseStorage.findMethod(BaseStorage.java:174)
	at org.eclipse.osgi.internal.baseadaptor.BaseStorage.findAddURLMethod(BaseStorage.java:158)
	at org.eclipse.osgi.internal.baseadaptor.BaseStorage.<init>(BaseStorage.java:128)
	at org.eclipse.osgi.internal.baseadaptor.BaseHookConfigurator.addHooks(BaseHookConfigurator.java:24)
	at org.eclipse.osgi.baseadaptor.HookRegistry.loadConfigurators(HookRegistry.java:178)
	at org.eclipse.osgi.baseadaptor.HookRegistry.initialize(HookRegistry.java:100)
	at org.eclipse.osgi.baseadaptor.BaseAdaptor.<init>(BaseAdaptor.java:89)
	at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.createAdaptor(EclipseStarter.java:752)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:282)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1384)

!ENTRY org.eclipse.osgi 4 0 2024-05-10 15:19:45.935
!MESSAGE Startup error
!STACK 1
java.lang.NullPointerException: Cannot invoke "org.eclipse.osgi.internal.baseadaptor.BaseStorage.initialize(org.eclipse.osgi.baseadaptor.BaseAdaptor)" because "this.storage" is null
	at org.eclipse.osgi.baseadaptor.BaseAdaptor.initializeStorage(BaseAdaptor.java:114)
	at org.eclipse.osgi.framework.internal.core.Framework.initialize(Framework.java:185)
	at org.eclipse.osgi.framework.internal.core.Framework.<init>(Framework.java:157)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:286)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:175)
	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1384)

解决办法:

排查发现客户在/etc/profile文件中设置了全局java环境变量,java版本为22.0.1,重新安装jdk1.8将环境变量路径修改至jdk1.8所在路径后解决。

root登录后使用dmdba用户打开管理工具步骤:

1、用root用户执行xhost +

[root@localhost mnt]# xhost +
access control disabled, clients can connect from any host

2、查看DISPLAY的值

[root@localhost mnt]# echo $DISPLAY
:0

3、切换到dmdba用户

[root@localhost mnt]# su - dmdba
Last login: 四 1月 25 16:41:51 CST 2024 on pts/1

4、在dmdba用户下设置DISPLAY环境变量,需与root查看到的一致

[dmdba@localhost ~]$ export DISPLAY=:0

5、进入数据库tool目录

[dmdba@localhost ~]$ cd /home/dmdba/dmdbms/tool

6、打开DM管理工具

[dmdba@localhost tool]$ ./manager
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服