下午好,
到目前为止,我已经使用Eclipse和Subclipse(带有JavaHL)已有几个月了,没有任何问题。 昨天(即19/03/19)更新了一些插件(包括Subclipse)后, subclipse不再起作用。
例如,我不再能够提交或拉出任何文件,并且当我查看window
> preference
> Team
> SVN
时,eclipse显示了以下消息:
Unable to create the selected preference page.
java.lang.reflect.InvocationTargetException
请在异常堆栈跟踪下面找到:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:206)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:934)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63)
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:284)
at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceNode.createPage(WorkbenchPreferenceNode.java:51)
at org.eclipse.jface.preference.PreferenceDialog.createPage(PreferenceDialog.java:1279)
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.createPage(FilteredPreferenceDialog.java:361)
at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1166)
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:675)
at org.eclipse.jface.preference.PreferenceDialog$5.lambda$0(PreferenceDialog.java:660)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:72)
at org.eclipse.jface.preference.PreferenceDialog$5.selectionChanged(PreferenceDialog.java:657)
at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:874)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:176)
at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:871)
at org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1240)
at org.eclipse.jface.viewers.StructuredViewer.lambda$0(StructuredViewer.java:1263)
at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
at org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:264)
at org.eclipse.jface.util.OpenStrategy.access$5(OpenStrategy.java:259)
at org.eclipse.jface.util.OpenStrategy$1.lambda$2(OpenStrategy.java:420)
at org.eclipse.swt.widgets.Display.timerProc(Display.java:5566)
at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1581)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4470)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:822)
at org.eclipse.jface.window.Window.open(Window.java:798)
at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.open(WorkbenchPreferenceDialog.java:214)
at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:66)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:476)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:568)
at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:400)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5663)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1386)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4931)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4472)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1173)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:636)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:563)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:151)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:155)
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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:595)
at org.eclipse.equinox.launcher.Main.run(Main.java:1501)
at org.eclipse.equinox.launcher.Main.main(Main.java:1474)
Caused by: java.lang.LinkageError: Native library version must be at least 1.11.0,but is only 1.9.3 (r1718519)
at org.apache.subversion.javahl.NativeResources.init(NativeResources.java:150)
at org.apache.subversion.javahl.NativeResources.loadNativeLibrary(NativeResources.java:111)
at org.apache.subversion.javahl.types.Version.<clinit>(Version.java:40)
at org.apache.subversion.javahl.NativeResources.init(NativeResources.java:147)
at org.apache.subversion.javahl.NativeResources.loadNativeLibrary(NativeResources.java:111)
at org.apache.subversion.javahl.SVNClient.<clinit>(SVNClient.java:52)
at org.tigris.subversion.svnclientadapter.javahl.JhlClientAdapterFactory.isAvailable(JhlClientAdapterFactory.java:184)
at org.tigris.subversion.clientadapter.javahl.Activator.isAvailable(Activator.java:83)
at org.tigris.subversion.clientadapter.javahl.Activator.getVersionSynchronized(Activator.java:72)
at org.tigris.subversion.clientadapter.javahl.Activator.getVersionString(Activator.java:67)
at org.tigris.subversion.clientadapter.javahl.Activator.getDisplayName(Activator.java:97)
at org.tigris.subversion.subclipse.ui.preferences.SVNPreferencesPage.<init>(SVNPreferencesPage.java:102)
... 66 more
Root exception:
java.lang.LinkageError: Native library version must be at least 1.11.0,but is only 1.9.3 (r1718519)
at org.apache.subversion.javahl.NativeResources.init(NativeResources.java:150)
at org.apache.subversion.javahl.NativeResources.loadNativeLibrary(NativeResources.java:111)
at org.apache.subversion.javahl.types.Version.<clinit>(Version.java:40)
at org.apache.subversion.javahl.NativeResources.init(NativeResources.java:147)
at org.apache.subversion.javahl.NativeResources.loadNativeLibrary(NativeResources.java:111)
at org.apache.subversion.javahl.SVNClient.<clinit>(SVNClient.java:52)
at org.tigris.subversion.svnclientadapter.javahl.JhlClientAdapterFactory.isAvailable(JhlClientAdapterFactory.java:184)
at org.tigris.subversion.clientadapter.javahl.Activator.isAvailable(Activator.java:83)
at org.tigris.subversion.clientadapter.javahl.Activator.getVersionSynchronized(Activator.java:72)
at org.tigris.subversion.clientadapter.javahl.Activator.getVersionString(Activator.java:67)
at org.tigris.subversion.clientadapter.javahl.Activator.getDisplayName(Activator.java:97)
at org.tigris.subversion.subclipse.ui.preferences.SVNPreferencesPage.<init>(SVNPreferencesPage.java:102)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:206)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:934)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63)
at org.eclipse.ui.internal.WorkbenchPlugin.createExtension(WorkbenchPlugin.java:284)
at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceNode.createPage(WorkbenchPreferenceNode.java:51)
at org.eclipse.jface.preference.PreferenceDialog.createPage(PreferenceDialog.java:1279)
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.createPage(FilteredPreferenceDialog.java:361)
at org.eclipse.jface.preference.PreferenceDialog.showPage(PreferenceDialog.java:1166)
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.showPage(FilteredPreferenceDialog.java:675)
at org.eclipse.jface.preference.PreferenceDialog$5.lambda$0(PreferenceDialog.java:660)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:72)
at org.eclipse.jface.preference.PreferenceDialog$5.selectionChanged(PreferenceDialog.java:657)
at org.eclipse.jface.viewers.StructuredViewer$3.run(StructuredViewer.java:874)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47)
at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:176)
at org.eclipse.jface.viewers.StructuredViewer.firePostSelectionChanged(StructuredViewer.java:871)
at org.eclipse.jface.viewers.StructuredViewer.handlePostSelect(StructuredViewer.java:1240)
at org.eclipse.jface.viewers.StructuredViewer.lambda$0(StructuredViewer.java:1263)
at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
at org.eclipse.jface.util.OpenStrategy.firePostSelectionEvent(OpenStrategy.java:264)
at org.eclipse.jface.util.OpenStrategy.access$5(OpenStrategy.java:259)
at org.eclipse.jface.util.OpenStrategy$1.lambda$2(OpenStrategy.java:420)
at org.eclipse.swt.widgets.Display.timerProc(Display.java:5566)
at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:1581)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4470)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:822)
at org.eclipse.jface.window.Window.open(Window.java:798)
at org.eclipse.ui.internal.dialogs.WorkbenchPreferenceDialog.open(WorkbenchPreferenceDialog.java:214)
at org.eclipse.ui.internal.OpenPreferencesAction.run(OpenPreferencesAction.java:66)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:476)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:568)
at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:400)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5663)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1386)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4931)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4472)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1173)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1062)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:636)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:563)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:151)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:155)
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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:595)
at org.eclipse.equinox.launcher.Main.run(Main.java:1501)
at org.eclipse.equinox.launcher.Main.main(Main.java:1474)
以下是有关会话数据的信息:
eclipse.buildId=4.10.0.I20181206-0815
java.version=1.8.0_191
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Framework arguments: -product org.eclipse.epp.package.java.product
Command-line arguments: -data file:/path/to/workspace/ -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.java.product
以下元素已于昨天更新:
Marketplace Client
从1.7.2.v20180829-193
到1.7.4.v20190206-174
Subclipse
从4.2.4.201804261743
到4.3.0.201901172050
Subversion JavaHL Windows Native DLL's 1.9.7.201803201521
至Subversion 1.11 JavaHL 1.11.1.20190116204
SVNKit Client Adapter 1.8.12.1
至1.8.12.
eclipse.ini
文件在-Djava.library.path=/usr/lib/x86_64-linux-gnu/jni
语句下包含一行到JavaHL -vmargs
的路径。
我正在使用Ubuntu 16.04。我已经尝试过,但没有成功:
通过Marketplace卸载并重新安装subclipse
通过Help
> Install New Software...
卸载并重新安装subclipse,提供Subclipse二进制文件(https://dl.bintray.com/subclipse/releases/subclipse/4.3.x/
或https://dl.bintray.com/subclipse/releases/subclipse/latest/
)的链接
使用新的空工作区
在同一台计算机上使用新的空工作区执行eclipse和subclipse的全新安装
我还尝试在另一台计算机(已安装eclipse但从未安装过subclipse的计算机)上安装subclipse,看来我遇到了同样的问题...
如果有人能给我一些有关这里出了什么问题或如何解决此问题的见解,我将非常感谢
预先感谢!
塞巴斯蒂安
答案 0 :(得分:1)
我终于找到了解决此问题的方法。
我执行了全新安装(删除了所有与eclipse相关的文件后-显然包括eclipse的安装文件夹,还包括其中的.p2
和.subversion
文件夹home
目录(不包括我没有删除任何文件的工作区),并通过Help
> Install New Software...
安装了subclipse,并提供了 Subclipse以前版本的链接,即Subclipse 4.2 (https://dl.bintray.com/subclipse/releases/subclipse/4.2.x/)。到目前为止,一切都恢复了正常。
我认为遇到与我相同的问题的人也可以通过更简单的方法来解决此问题,方法是在上一次更新Help
之前还原安装(避免执行全新安装...)。 }> About Eclipse IDE
> Installation Details
> Installation History
,然后选择上次安装并单击到revert
。但是,我无法做到这一点,因为我修改了一些文件,这些文件似乎是Eclipse执行此操作所必需的。所以我不确定第二种方法是否有效...
即使这是解决问题的一种方法,我也不明白当前Subclipse版本(4.3)出了什么问题。特别是这个问题在当前版本中是已知的并已报告(但是在这种情况下,我没有找到任何文档或有关它的问题...)或与我使用的配置有关的问题或我做了的事情?!如果有人对此有任何想法,我将很高兴了解:)
答案 1 :(得分:1)
这本身不是问题,在文档中或多或少地对此进行了解释:
https://github.com/subclipse/subclipse/wiki
当前的Subclipse版本支持SVN 1.11或1.10。在Windows以外的所有操作系统上,您都有责任提供本机库(请参见上页的JavaHL链接)。您的错误是您安装了1.11支持,但安装了SVN 1.9.x本机库。您没有提到您的操作系统,但是一种解决方案是将已安装的SVN客户端更新为1.11。
如页面上进一步所述,如果您被困在SVN 1.9.x客户端上,则必须安装支持1.9的较旧的Subclipse 4.2.x版本。
如果可以获取1.10,但不能获取1.11,则只需卸载1.11 JavaHL插件并安装1.10插件。两者都在Subclipse更新站点上。
答案 2 :(得分:0)
答案 3 :(得分:0)
我遇到了此错误,因为在Debian Buster(1.10.4-1 + deb10u1)上安装的libsvn-java
版本不满足Eclipse 2020-03的要求:至少为1.12.0。
只需运行
sudo apt-get purge libsvn-java
解决了该问题,因为Eclipse随后又使用了SVN Kit。道理是:没有安装JavaHL总比拥有太旧的版本好。