개발/개발관련

[개발관련] 이클립스 실행오류 SWTException, 이클립스 재설치

mabb 2023. 5. 19. 10:45
반응형

다음 이클립스 버전을 설치 후 실행하였더니 에러가 발생하였다.
Eclipse IDE for Enterprise Java and Web Developers - 2023-03

이클립스 에러 팝업

 

에러팝업이 알려준 경로의 log파일

!SESSION 2023-05-19 09:16:51.033 -----------------------------------------------
eclipse.buildId=4.27.0.20230309-1200
java.version=1.8
java.vendor=Eclipse Adoptium
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=ko_KR
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product

!ENTRY ch.qos.logback.classic 1 0 2023-05-19 09:16:52.483
!MESSAGE Activated before the state location was initialized. Retry after the state location is initialized.

!ENTRY org.eclipse.osgi 4 0 2023-05-19 09:16:53.294
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTException: Unsupported or unrecognized format
	at org.eclipse.swt.SWT.error(SWT.java:4918)
	at org.eclipse.swt.SWT.error(SWT.java:4833)
	at org.eclipse.swt.SWT.error(SWT.java:4804)
	at org.eclipse.swt.internal.image.FileFormat.load(FileFormat.java:88)
	at org.eclipse.swt.graphics.ImageLoader.load(ImageLoader.java:155)
	at org.eclipse.swt.graphics.ImageDataLoader.load(ImageDataLoader.java:25)
	at org.eclipse.swt.graphics.ImageData.<init>(ImageData.java:334)
	at org.eclipse.jface.resource.URLImageDescriptor.getImageData(URLImageDescriptor.java:109)
	at org.eclipse.jface.resource.URLImageDescriptor.getImageData(URLImageDescriptor.java:85)
	at org.eclipse.swt.internal.DPIUtil.validateAndGetImageDataAtZoom(DPIUtil.java:408)
	at org.eclipse.swt.graphics.Image.<init>(Image.java:717)
	at org.eclipse.jface.resource.URLImageDescriptor.createImage(URLImageDescriptor.java:249)
	at org.eclipse.jface.resource.ImageDescriptor.createImage(ImageDescriptor.java:290)
	at org.eclipse.jface.resource.ImageDescriptor.createImage(ImageDescriptor.java:268)
	at org.eclipse.ui.internal.Workbench.initializeImages(Workbench.java:1801)
	at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:752)
	at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:183)
	at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:182)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:125)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1467)

SWTException:Unsupported or unrecognized format.
지원하지 않거나 인식할 수 없는 포맷으로 인한 SWTException
Standard Widget Toolkit 표준 위젯 툴킷.

표준 위젯 툴킷 출처: 위키백과, https://ko.wikipedia.org/wiki/%ED%91%9C%EC%A4%80_%EC%9C%84%EC%A0%AF_%ED%88%B4%ED%82%B7#%EB%94%94%EC%9E%90%EC%9D%B8

 

 

eclipse.ini를 건드려 볼까.

-vm 버추얼머신 경로를 변경해 봄.

에러발생 - 여기는 jdk/bin 경로로 했어야 함

-vm 버추얼머신 경로를 다시 변경해 봄

에러발생- 자바 버전을 1.8로 변경해주지 않음.

-vm
C:/Java/jdk1.8.0_321/bin
-vmargs
-Dosgi.requiredJavaVersion=1.8

 

로그의 에러가 바뀌었다. - BundleException

!SESSION 2023-05-19 15:51:58.083 -----------------------------------------------
eclipse.buildId=4.27.0.20230309-1200
java.version=1.8.0_321
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=ko_KR
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.jee.product

!ENTRY org.eclipse.equinox.simpleconfigurator 4 0 2023-05-19 15:51:58.440
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.equinox.simpleconfigurator [2]
  Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=11))"

	at org.eclipse.osgi.container.Module.start(Module.java:463)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:1852)
	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:136)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1845)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1788)
	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1750)
	at org.eclipse.osgi.container.SystemModule.startWorker(SystemModule.java:269)
	at org.eclipse.osgi.container.Module.doStart(Module.java:605)
	at org.eclipse.osgi.container.Module.start(Module.java:468)
	at org.eclipse.osgi.container.SystemModule.start(SystemModule.java:193)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:445)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:464)
	at org.eclipse.osgi.launch.Equinox.start(Equinox.java:139)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.startup(EclipseStarter.java:338)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:251)
	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:596)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1467)

!ENTRY org.eclipse.osgi 4 0 2023-05-19 15:51:58.442
!MESSAGE Bundle initial@reference:file:../../../.p2/pool/plugins/org.eclipse.equinox.simpleconfigurator_1.4.200.v20221111-1340.jar was not resolved.

!ENTRY org.eclipse.equinox.simpleconfigurator 2 0 2023-05-19 15:51:58.444
!MESSAGE Could not resolve module: org.eclipse.equinox.simpleconfigurator [2]
  Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=11))"


!ENTRY org.eclipse.osgi 4 0 2023-05-19 15:51:58.445
!MESSAGE Application error
!STACK 1
java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:81)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
	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:596)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1467)

자바 11을 원하고 있다.

 

Java Platform, Standard Edition 11 Reference Implementations

Java Platform, Standard Edition 11 Reference Implementations The official Reference Implementation for Java SE 11 (JSR 384) is based solely upon open-source code available from the JDK 11 Project in the OpenJDK Community. This Reference Implementation a

jdk.java.net

 

jdk 버전을 올리니 17을 요구, 17로 올리니 다시 처음의 에러로 돌아와 원복이 됨.
SWTException 은 어떻게 해결해야 하는 것일까.

!SESSION 2023-05-19 16:12:49.817 -----------------------------------------------
eclipse.buildId=4.27.0.20230309-1200
java.version=17
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=ko_KR
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -clean -product org.eclipse.epp.package.jee.product

!ENTRY ch.qos.logback.classic 1 0 2023-05-19 16:12:54.615
!MESSAGE Activated before the state location was initialized. Retry after the state location is initialized.

!ENTRY org.eclipse.osgi 4 0 2023-05-19 16:12:57.799
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTException: Unsupported or unrecognized format
	at org.eclipse.swt.SWT.error(SWT.java:4918)
	at org.eclipse.swt.SWT.error(SWT.java:4833)
	at org.eclipse.swt.SWT.error(SWT.java:4804)
	at org.eclipse.swt.internal.image.FileFormat.load(FileFormat.java:88)
	at org.eclipse.swt.graphics.ImageLoader.load(ImageLoader.java:155)
	at org.eclipse.swt.graphics.ImageDataLoader.load(ImageDataLoader.java:25)
	at org.eclipse.swt.graphics.ImageData.<init>(ImageData.java:334)
	at org.eclipse.jface.resource.URLImageDescriptor.getImageData(URLImageDescriptor.java:109)
	at org.eclipse.jface.resource.URLImageDescriptor.getImageData(URLImageDescriptor.java:85)
	at org.eclipse.swt.internal.DPIUtil.validateAndGetImageDataAtZoom(DPIUtil.java:408)
	at org.eclipse.swt.graphics.Image.<init>(Image.java:717)
	at org.eclipse.jface.resource.URLImageDescriptor.createImage(URLImageDescriptor.java:249)
	at org.eclipse.jface.resource.ImageDescriptor.createImage(ImageDescriptor.java:290)
	at org.eclipse.jface.resource.ImageDescriptor.createImage(ImageDescriptor.java:268)
	at org.eclipse.ui.internal.Workbench.initializeImages(Workbench.java:1801)
	at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:752)
	at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:183)
	at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:182)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:125)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1467)

 

이클립스를 다시 설치해 보아야겠다. 2020.06 버전으로 설치하기로 함.

 

Eclipse Packaging Project (EPP) Releases | Eclipse Packages

 

www.eclipse.org

 

 

 

이클립스 2020-06 버전의 eclipse.ini

-startup
plugins/org.eclipse.equinox.launcher_1.5.700.v20200207-2156.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.1200.v20200508-1552
-product
org.eclipse.epp.package.jee.product
-showsplash
org.eclipse.epp.package.common
--launcher.defaultAction
openFile
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Dosgi.instance.area.default=@user.home/eclipse-workspace
-XX:+UseG1GC
-XX:+UseStringDeduplication
--add-modules=ALL-SYSTEM
-Dosgi.requiredJavaVersion=1.8
-Dosgi.dataAreaRequiresExplicitInit=true
-Xms256m
-Xmx2048m
--add-modules=ALL-SYSTEM

 

이클립스 2020-06 zip 버전은 잘 실행이 된다.
2023-03 exe 설치버전은 설치 과정에서 무언가 문제가 있었던 것 같은데 원인을 명확하게 파악하기 어려웠다.

일단 스프링 및 JUnit 테스트를 위한 이클립스 설치가 목적이므로 일단은 잘 작동하는 이클립스를 사용하고 추후에
원인에 대해 잘 파악해 보아야겠다..

 

잘 안 될 때는 씨름하기보다는 재설치를 하는 것이 시간을 절약하는 방법일 수도 있는 것 같다.

반응형