목차

Eclipse 에서 Subversive(SVN) 사용시 NoClassDefFoundError TabFolderLayout

Eclipse 2024-12 버전에서 SVN 4.X 버전이 정상적으로 동작하지 않는 문제

발생 오류 java.lang.NoClassDefFoundError: org/eclipse/compare/internal/TabFolderLayout

java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/eclipse/compare/internal/TabFolderLayout
at org.eclipse.team.svn.core.svnstorage.SVNRepositoryLocation.acquireSVNProxy(SVNRepositoryLocation.java:632)
at org.eclipse.team.svn.core.operation.local.RemoteStatusOperation.runImpl(RemoteStatusOperation.java:152)
at org.eclipse.team.svn.core.operation.AbstractActionOperation.run(AbstractActionOperation.java:82)
at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTask(ProgressMonitorUtility.java:104)
at org.eclipse.team.svn.core.operation.CompositeOperation.runImpl(CompositeOperation.java:99)
at org.eclipse.team.svn.core.operation.AbstractActionOperation.run(AbstractActionOperation.java:82)
at org.eclipse.team.svn.core.operation.LoggedOperation.run(LoggedOperation.java:40)
at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTask(ProgressMonitorUtility.java:104)
at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTaskExternal(ProgressMonitorUtility.java:90)
at org.eclipse.team.svn.core.synchronize.AbstractSVNSubscriber.findChanges(AbstractSVNSubscriber.java:386)
at org.eclipse.team.svn.core.synchronize.AbstractSVNSubscriber$UpdateStatusOperation2.run(AbstractSVNSubscriber.java:430)atorg.eclipse.team.svn.core.utility.ProgressMonitorUtility.doSubTask(ProgressMonitorUtility.java:118)atorg.eclipse.team.svn.core.operation.AbstractActionOperation.protectStep(AbstractActionOperation.java:156)atorg.eclipse.team.svn.core.operation.AbstractActionOperation.protectStep(AbstractActionOperation.java:151)atorg.eclipse.team.svn.core.synchronize.AbstractSVNSubscriber2.run(AbstractSVNSubscriber.java:430) at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doSubTask(ProgressMonitorUtility.java:118) at org.eclipse.team.svn.core.operation.AbstractActionOperation.protectStep(AbstractActionOperation.java:156) at org.eclipse.team.svn.core.operation.AbstractActionOperation.protectStep(AbstractActionOperation.java:151) at org.eclipse.team.svn.core.synchronize.AbstractSVNSubscriber2.run(AbstractSVNSubscriber.java:430)atorg.eclipse.team.svn.core.utility.ProgressMonitorUtility.doSubTask(ProgressMonitorUtility.java:118)atorg.eclipse.team.svn.core.operation.AbstractActionOperation.protectStep(AbstractActionOperation.java:156)atorg.eclipse.team.svn.core.operation.AbstractActionOperation.protectStep(AbstractActionOperation.java:151)atorg.eclipse.team.svn.core.synchronize.AbstractSVNSubscriberUpdateStatusOperation.runImpl(AbstractSVNSubscriber.java:428)
at org.eclipse.team.svn.core.operation.AbstractActionOperation.run(AbstractActionOperation.java:82)
at org.eclipse.team.svn.core.operation.LoggedOperation.run(LoggedOperation.java:40)
at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTask(ProgressMonitorUtility.java:104)
at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTaskExternal(ProgressMonitorUtility.java:90)
at org.eclipse.team.svn.core.utility.ProgressMonitorUtility.doTaskExternal(ProgressMonitorUtility.java:81)
at org.eclipse.team.svn.core.synchronize.AbstractSVNSubscriber.refresh(AbstractSVNSubscriber.java:243)
at org.eclipse.team.svn.core.synchronize.UpdateSubscriber.refresh(UpdateSubscriber.java:75)
at org.eclipse.team.core.subscribers.Subscriber.refresh(Subscriber.java:471)
at org.eclipse.team.core.subscribers.SubscriberMergeContext.refresh(SubscriberMergeContext.java:88)
at org.eclipse.team.core.mapping.provider.SynchronizationContext.refresh(SynchronizationContext.java:105)
at org.eclipse.team.internal.ui.synchronize.RefreshModelParticipantJob.doRefresh(RefreshModelParticipantJob.java:81)
at org.eclipse.team.internal.ui.synchronize.RefreshParticipantJob.run(RefreshParticipantJob.java:332)
at org.eclipse.team.internal.ui.synchronize.RefreshModelParticipantJob.run(RefreshModelParticipantJob.java:136)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: java.lang.NoClassDefFoundError: org/eclipse/compare/internal/TabFolderLayout
at org.eclipse.team.svn.ui.UIOptionProvider.getCredentialsPrompt(UIOptionProvider.java:48)
at org.eclipse.team.svn.core.svnstorage.SVNRepositoryLocation.newProxyInstance(SVNRepositoryLocation.java:848)
at org.eclipse.team.svn.core.svnstorage.SVNRepositoryLocation.acquireSVNProxy(SVNRepositoryLocation.java:614)
... 28 more
Caused by: java.lang.ClassNotFoundException: org.eclipse.compare.internal.TabFolderLayout cannot be found by org.eclipse.team.svn.ui_4.8.0
at org.eclipse.osgi.internal.loader.BundleLoader.generateException(BundleLoader.java:562)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:557)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:434)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:174)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:528)
... 31 more

해결방법

여러가지 방법이 있지만 최신 Subversive로 업그레이드 하는것을 권장한다.

일단 기존 설치된 Subversive를 제거해야한다.

메뉴에서 Help - About Eclipse IDE 를 선택하면 아래와 같은 화면이 나온다.

아래쪽 Installation Details를 선택한다.

기존에 설치된 Subversive관련 패키지들을 모두 제거한다.

모두 제거가 되면 이클립스가 재실행 된다.
이후에 최신버전으로 재 설치하면 된다.

최신버전은

https://download.eclipse.org/technology/subversive/updates/release/latest/index.html

링크에서 확인할 수 있으며 설치 방법은 아래와 같다.

메뉴에서 Help - Install New Software 를 선택한 후 아래 레포지토리를 등록한다.

https://download.eclipse.org/technology/subversive/updates/release/latest

그리고 최신버전의 Subversive를 설치하면 된다.

관련 링크