java - java.lang.ClassNotFoundException:org.eclipse.core.runtime.adaptor.EclipseStarter raspberrypi 不工作
问题描述
我不明白为什么它不起作用。你能写一点解释吗
__________________________________________________________ --------eclipse版本------------ openjdk 11.0.7 2020-04-14 OpenJDK 运行时环境 (build 11.0.7+10-post-Raspbian-3deb10u1) OpenJDK Server VM(build 11.0.7+10-post-Raspbian-3deb10u1,混合模式) ____________________________________________________________________________ --------eclipse错误日志---- !SESSION Mon Jul 06 23:05:19 TRT 2020 -------------------------------------------------- ---- !ENTRY org.eclipse.equinox.launcher 4 0 2020-07-06 23:05:20.022 !MESSAGE 异常启动 Eclipse 平台: !堆 java.lang.ClassNotFoundException: org.eclipse.core.runtime.adaptor.EclipseStarter 在 java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589) 在 java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) 在 org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:626) 在 org.eclipse.equinox.launcher.Main.basicRun(Main.java:584) 在 o rg.eclipse.equinox.launcher.Main.run(Main.java:1438) ________________________________________________________________________ -------------eclipse /usr/share/eclipse/configuration/config.ini------- #这个配置文件的编写者是:org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser #2018 年 2 月 21 日星期三 18:41:43 UTC org.eclipse.update.reconcile=false eclipse.p2.profile=平台配置文件 osgi.instance.area.default=@user.home/workspace osgi.framework=file\:plugins/org.eclipse.osgi_3.8.1.dist.jar Equinox.use.ds=true eclipse.buildId=debbuild osgi.bundles=reference\:file\:org.eclipse.equinox.simpleconfigurator_1.0.301.dist.jar@1\:start org.eclipse.swt.internal.gtk.useCairo=true org.eclipse.equinox.simpleconfigurator.configUrl=文件\:org.eclipse.equinox.simpleconfigurator/bundles.info eclipse.product=org.eclipse.platform.ide osgi.splashPath=platform\:/base/plugins/org.eclipse.platform osgi.framework.extensions= osgi.bundles.defaultStartLevel=4 eclipse.application=org.eclipse.ui.ide.workbench eclipse.p2.data.area=@config.dir/../p2/ ________________________________________________________________________ ---------eclipse插件---------- org.eclipse.ant.core_3.2.400.dist.jar org.eclipse.compare_3.5.300.dist.jar org.eclipse.compare.core_3.5.200.dist.jar org.eclipse.core.boot_3.1.300.dist.jar org.eclipse.core.externaltools_1.0.100.dist.jar org.eclipse.core.filebuffers_3.5.200.dist.jar org.eclipse.core.filesystem_1.3.200.dist.jar org.eclipse.core.net_1.2.200.dist.jar org.eclipse.core.resources_3.8.1.dist.jar org.eclipse.core.runtime.compatibility_3.2.200.dist.jar org.eclipse.core.runtime.compatibility.registry_3.5.100.dist org.eclipse.core.variables_3.2.600.dist.jar org.eclipse.cvs_1.2.0.dist.jar org.eclipse.debug.core_3.7.100.dist.jar org.eclipse.debug.ui_3.8.1.dist.jar org.eclipse.ecf_3.1.300.dist.jar org.eclipse.ecf.filetransfer_5.0.0.dist.jar org.eclipse.ecf.identity_3.1.200.dist.jar org.eclipse.ecf.provider.filetransfer_3.2.0.dist.jar org.eclipse.ecf.provider.filetransfer.httpclient_4.0.200.dist.jar org.eclipse.ecf.provider.filetransfer.httpclient.ssl_1.0.0.dist.jar org.eclipse.ecf.provider.filetransfer.ssl_1.0.0.dist.jar org.eclipse.ecf.ssl_1.0.100.dist.jar org.eclipse.equinox.concurrent_1.0.300.dist.jar org.eclipse.equinox.event_1.2.200.dist.jar org.eclipse.equinox.frameworkadmin_2.0.100.dist.jar org.eclipse.equinox.frameworkadmin.equinox_1.0.400.dist.jar org.eclipse.equinox.http.jetty_3.0.0.dist.jar org.eclipse.equinox.http.registry_1.1.200.dist.jar org.eclipse.equinox.http.servlet_1.1.300.dist.jar org.eclipse.equinox.jsp.jasper_1.0.400.dist.jar org.eclipse.equinox.jsp.jasper.registry_1.0.300.dist.jar org.eclipse.equinox.log_1.2.300.dist.jar org.eclipse.equinox.p2.artifact.repository_1.1.200.dist.jar org.eclipse.equinox.p2.console_1.0.300.dist.jar org.eclipse.equinox.p2.core_2.2.0.dist.jar org.eclipse.equinox.p2.director_2.2.0.dist.jar org.eclipse.equinox.p2.director.app_1.0.300.dist.jar org.eclipse.equinox.p2.directorywatcher_1.0.300.dist.jar org.eclipse.equinox.p2.engine_2.2.0.dist.jar org.eclipse.equinox.p2.extensionlocation_1.2.100.dist.jar org.eclipse.equinox.p2.garbagecollector_1.0.200.dist.jar org.eclipse.equinox.p2.jarprocessor_1.0.200.dist.jar org.eclipse.equinox.p2.metadata_2.1.0.dist.jar org.eclipse.equinox.p2.metadata.repository_1.2.100.dist.jar org.eclipse.equinox.p2.operations_2.2.0.dist.jar org.eclipse.equinox.p2.publisher_1.2.0.dist.jar org.eclipse.equinox.p2.publisher.eclipse_1.1.0.dist.jar org.eclipse.equinox.p2.ql_2.0.100.dist.jar org.eclipse.equinox.p2.reconciler.dropins_1.1.200.dist.jar org.eclipse.equinox.p2.repository_2.2.0.dist.jar org.eclipse.equinox.p2.repository.tools_2.0.100.dist.jar org.eclipse.equinox.p2.touchpoint.eclipse_2.1.100.dist.jar org.eclipse.equinox.p2.touchpoint.natives_1.1.0.dist.jar org.eclipse.equinox.p2.transport.ecf_1.0.100.dist.jar org.eclipse.equinox.p2.ui_2.2.0.dist.jar org.eclipse.equinox.p2.ui.importexport_1.0.1.dist.jar org.eclipse.equinox.p2.ui.sdk_1.0.200.dist.jar org.eclipse.equinox.p2.ui.sdk.scheduler_1.1.0.dist.jar org.eclipse.equinox.p2.updatechecker_1.1.200.dist.jar org.eclipse.equinox.p2.updatesite_1.0.400.dist.jar org.eclipse.equinox.security_1.1.100.dist.jar org.eclipse.equinox.security.ui_1.1.100.dist.jar org.eclipse.equinox.simpleconfigurator.manipulator_2.0.0.dist.jar org.eclipse.help.appserver_3.1.400.dist.jar org.eclipse.help.base_3.6.100.dist.jar org.eclipse.help.ui_3.5.200.dist.jar org.eclipse.help.webapp_3.6.101.dist.jar org.eclipse.jdt.core_3.8.2.dist.jar org.eclipse.jface.text_3.8.1.dist.jar org.eclipse.jsch.core_1.1.400.dist.jar org.eclipse.jsch.ui_1.1.400.dist.jar org.eclipse.ltk.core.refactoring_3.6.0.dist.jar org.eclipse.ltk.ui.refactoring_3.7.0.dist.jar org.eclipse.platform_3.8.1.dist org.eclipse.platform.doc.user_3.8.0.dist.jar org.eclipse.search_3.8.0.dist.jar org.eclipse.team.core_3.6.100.dist.jar org.eclipse.team.cvs.core_3.3.500.dist.jar org.eclipse.team.cvs.ssh2_3.2.300.dist.jar org.eclipse.team.cvs.ui_3.3.500.dist.jar org.eclipse.team.ui_3.6.200.dist.jar org.eclipse.text_3.5.200.dist.jar org.eclipse.ui.browser_3.4.1.dist.jar org.eclipse.ui.cheatsheets_3.4.200.dist.jar org.eclipse.ui.console_3.5.100.dist.jar org.eclipse.ui.editors_3.8.0.dist.jar org.eclipse.ui.externaltools_3.2.100.dist.jar org.eclipse.ui.forms_3.5.200.dist.jar org.eclipse.ui.ide_3.8.1.dist.jar org.eclipse.ui.ide.application_1.0.400.dist.jar org.eclipse.ui.intro_3.4.200.dist.jar org.eclipse.ui.intro.universal_3.2.600.dist org.eclipse.ui.navigator_3.5.200.dist.jar org.eclipse.ui.navigator.resources_3.4.400.dist.jar org.eclipse.ui.net_1.2.101.dist.jar org.eclipse.ui.presentations.r21_3.2.201.dist.jar org.eclipse.ui.views_3.6.100.dist.jar org.eclipse.ui.views.properties.tabbed_3.5.300.dist.jar org.eclipse.ui.workbench.compatibility_3.2.101.dist org.eclipse.ui.workbench.texteditor_3.8.0.dist.jar org.eclipse.update.core_3.2.600.dist.jar org.eclipse.update.scheduler_3.2.400.dist.jar org.eclipse.update.ui_3.3.0.dist.jar
解决方案
多个问题
找不到类
这ClassNotFoundException
可能是因为您使用 JDK11。也许作为 Java 11 一部分的 Jigsaw 项目(模块化)是找不到类的问题。所以这个问题可以通过使用JDK8来解决。apt 附带的 eclipse 版本通常很旧,无法正确处理模块化。
如果您的 Linux 系统上有多个 java 安装,您可以通过以下方式在它们之间切换:
sudo update-alternatives --config java
有关更多详细信息,请参阅stackoverflow 上的替代命令描述
或者您更改eclipse.ini
文件并指出您想要的 JDK 而不更改您的默认 Java 版本:eclipse.ini VM Linux 示例(Eclipse Wiki)
Eclipse APT 版本很旧
不幸的是,大多数 Linux 发行版仅提供“开箱即用”的非常旧版本的 eclipse。我建议从 https://www.eclipse.org/downloads/packages/下载更新的软件包——至少对于 i386 架构。
使用这种极旧的 Eclipse 版本会非常慢,并且您将无法访问 Eclipse 市场上的最新插件,因为市场解决方案描述了它们正在运行的版本,并且现在大多数插件至少需要 Java 8 和 Eclipse Oxygen。
已删除 32 位操作系统支持
Eclipse 项目已放弃对 32 位 Windows 和 Linux 的支持(请参阅“Photon”的发布信息) - 所以如果您的操作系统是 32 位...
默认情况下,SWT 原生部件在 ARM 上不可用
eclipse 用来绘制菜单、组件和所有其他 UI 部分的标准小部件工具包 (SWT) 是一个本地库 - 所以它对于 Linux、Windows、Mac 是不同的......
目前仅在SWT构建平台上
- mac 64位 (i386)
- gtk linux 64bit (power pc + i386)
- 视窗 64 位 (i386)
正在构建。
何去何从?
也许你可以在你的树莓派上安装一个 64 位的 Linux 版本来解决 32 位的问题。
但我不确定这是否会启动 eclipse,因为提到的SWT
库不是为 ARM 架构构建的。
因此,只要这里没有官方支持或有人为 SWT 进行基于 ARM 的构建,就很难在您的 PI 上运行 eclipse。但是让苹果也去ARM
平台化,也许它将来也会发生在 linux arm 上?
这里有一些额外的链接:
推荐阅读
- ruby-on-rails - 备份存储库
- syncfusion - 同步融合图表工具提示模板未获取点的 x 和 y 值
- vim - 如何告诉 vim 默认使用特定的 SQL 方言以进行语法突出显示?
- django - 使用 include 从我的 django 应用程序中导入所有 url
- javascript - chart.js typeError t is undefined and Uncaught TypeError: Cannot read property 'fontSize' of undefined
- python - Selenium 访问 div 标签中的文本
- javascript - Angular 7 - 错误错误:未捕获(承诺):TypeError:无法读取未定义的属性'forEach'
- gradle - 如何使用gradle访问artifactory中trunk文件夹中的jar
- node.js - EventEmitter 和 CustomEvent 的问题
- c# - Asp .net core WebApi 将外键 ID 作为值返回