java - 无法在 ubuntu 18.04 上启动 dbeaver
问题描述
Prelim :我在 ubuntu 18.04 上安装了 dbeaver。不幸的是,我不记得我是如何安装它的,但我想我遵循了这里的说明。我还记得我在安装最新的 java 版本时遇到了问题。下面是命令窗口的一些输出:
$ java -version
java version "9-ea"
Java(TM) SE Runtime Environment (build 9-ea+130)
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+130, mixed mode)
问题:我无法让 Dbeaver 运行。当我从终端启动 dbeaver 时,我得到以下信息:
$ dbeaver
2019-06-23 21:51:30.368 - Create display
然后是一整套错误
(DBeaver:15178): GLib-CRITICAL **: 21:51:30.414: g_base64_encode_step: assertion 'in != NULL' failed
(DBeaver:15178): GLib-CRITICAL **: 21:51:30.414: g_base64_encode_step: assertion 'in != NULL' failed
而且这个清单没完没了。然后在无尽的输出列表的末尾:
2019-06-23 21:51:30.643 - > Start org.jkiss.dbeaver.core [6.1.0.201906091949]
2019-06-23 21:51:30.648 - DBeaver 6.1.0.201906091949 is starting
2019-06-23 21:51:30.649 - OS: Linux 4.15.0-47-generic (amd64)
2019-06-23 21:51:30.649 - Java version: 9-ea by Oracle Corporation (64bit)
2019-06-23 21:51:30.649 - Install path: '/usr/share/dbeaver'
2019-06-23 21:51:30.649 - Instance path: 'file:/home/myname/.dbeaver4/'
2019-06-23 21:51:30.650 - Memory available 80Mb/1024Mb
2019-06-23 21:51:30.667 - Starting RMI server at 59084
2019-06-23 21:51:30.755 - Run workbench
2019-06-23 21:51:30.769 - > Start org.eclipse.e4.ui.workbench.swt [0.14.500.v20190214-0851]
2019-06-23 21:51:30.771 - > Start org.eclipse.e4.core.services [2.1.400.v20181215-2145]
2019-06-23 21:51:30.774 - > Start org.eclipse.e4.core.contexts [1.8.0.v20190214-1713]
2019-06-23 21:51:30.789 - > Start org.eclipse.e4.ui.services [1.3.400.v20190212-2214]
接着:
2019-06-23 21:51:30.828 - Internal error in workbench lifecycle
org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:422)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:333)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:202)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultHeadlessContext(E4Application.java:497)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createDefaultContext(E4Application.java:511)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.createE4Workbench(E4Application.java:211)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:589)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:566)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at org.jkiss.dbeaver.core.application.DBeaverApplication.start(DBeaverApplication.java:201)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-ea/Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@9-ea/NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@9-ea/DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(java.base@9-ea/Method.java:533)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:661)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
at org.eclipse.equinox.launcher.Main.run(Main.java:1476)
at org.eclipse.equinox.launcher.Main.main(Main.java:1449)
Caused by: java.lang.NoClassDefFoundError: javax/annotation/PostConstruct
at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:139)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:411)
... 23 more
Caused by: java.lang.ClassNotFoundException: javax.annotation.PostConstruct cannot be found by org.eclipse.e4.core.di_1.7.100.v20180817-1215
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:460)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:414)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:153)
at java.lang.ClassLoader.loadClass(java.base@9-ea/ClassLoader.java:419)
... 25 more
经过一番激烈的斗争,它最终放弃了:
2019-06-23 21:51:30.834 - DBeaver is stopping
2019-06-23 21:51:30.835 - Stop RMI server
2019-06-23 21:51:30.863 - < Stop org.jkiss.dbeaver.ext.mssql.ui [1.0.9.201906091949]
2019-06-23 21:51:30.863 - < Stop org.jkiss.dbeaver.ext.mssql [1.0.104.201906091949]
2019-06-23 21:51:30.863 - < Stop org.jkiss.dbeaver.ext.oracle [2.1.95.201906091949]
2019-06-23 21:51:30.863 - < Stop org.jkiss.dbeaver.ext.ui.tipoftheday [1.0.16.201906091949]
该怎么办?如何让 dbeaver 运行?
解决方案
这是 Java 9+ 的Eclipse 问题,已在较新的 Eclipse 版本中修复。我怀疑您下载的 dbeaver 版本可能使用了仍然存在问题的旧版本。任何一个:
- 尝试安装 Java 8 而不是 Java 9。
- 或安装较新的 Eclipse,并在其上安装 dbeaver 插件
推荐阅读
- windows-subsystem-for-linux - 是否可以将关联路径挂载到 WSL?
- r - 使用 R 中的应用公式构建矩阵
- powershell - 可以让变量在设置接收者限制过滤器时起作用
- powerbi - 如何从日期中提取月份名称
- kubernetes - 关于Kubernetes中Consul Ingress-Gateway的问题
- python - 'LabelEncoder' 未在 nltk 中定义
- python - 找不到 Django React 一起服务页面 (404)
- google-cloud-platform - GCE 中 CPU 和 vCPU 之间的关系
- javascript - 当字段(用户名、密码)是 Selenium 的隐藏元素时如何在网页上自动登录
- django - 是否可以使用 Azure 存储列出目录中的文件