한바다
특정 workspace 상태저장 오류, 이클립스와 JDK설정 본문
☑️ Problems occurred while trying to save the state of the workbench.
Eclipse에서 워크스페이스의 상태를 저장하는데 문제가 발생하여 해당 오류 얼럿창이 떳다
내PC에 있던 workspace프로젝트 폴더를 이동디스크에 옮긴 후 이클립스에서 import후 잘 써먹다가 이클립스를
종료하니 해당 얼럽창이 나타났다.
[오류 원인]
1. 워크스페이스 손상
처음부터 작성했던 워크스페이스가 아니라 폴더가 이리저리 옮겨가며 import해와 상태를 저장하는데서 문제가
발생한 것이다.
워크스페이스 설정파일 설정시 이클립스를 종료하고 워크스페이스 폴더로 이동한 다음
.metadata/.plugins/org.eclipse.core.resources/.snap 파일을 삭제 혹은
.metadata/.plugins/org.eclipse.e4.workbench 폴더 하위의 workbench.xmi 파일을 삭제한다
workbench.xmi 파일은 마지막까지 작업하고 있던 파일 목록이 보여지거나 Open Perspective, Show View 설정
등이 그대로 유지된 채로 구동되도록 하는 파일이 바로 작업내역들을 저장해두는 곳이다.
2. 디스크 용량 부족인지 확인
3. 파일시스템 권한 문제인지 확인
이클립스가 해당폴더에 접근할 수 있도록 설정
☑️Mutiple problems have occurred. An internal error occurred during:"Building".
위 오류는 주로 이클립스에서 워크스페이스와 관련된 파일이나 프로젝트의 설정이 잘못되거나 손상되었을때 발생하는 오류로 주된원인은 외장하드에서 프로젝트를 불러올 때 경로변경과 관련이 있었다.
[문제 분석]
외장하드에서 워크스페이스를 불러오는 경우, 경로가 변경되면서 프로젝트의 설정파일이 올바르게 참조되지 않거나 손상.
오류 얼럿에서 '이클립스가 프로젝트 설명 정보를 불러오는데 실패하고 있다'
[해결방법]
워크스페이스가 저장된 폴더 안에 .metadata 폴더를 삭제(이클립스가 종료된 상태에서 진행)
이 폴더를 삭제하면 워크스페이스와 관련된 모든 설정파일이 사라지며, 이클립스가 처음 시작할 때 이 폴더와
그 안의 파일을 다시 생성
<.metadata 폴더 란?>
이클립스가 워크스페이스를 처음 설정할때 자동으로 생성되는 숨김폴더로 이클립스가 프로젝트와 관련된 환경설정,로그,빌드정보,에러상태 등을 저장하기 위해 자신만의 공간을 만들어 놓음
즉 이클립스가 프로젝트의 상태와 설정을 저장해두는 공간으로 처음에는 없다가 이클립스가 작업환경을 설정하면서 생긴다. 이클립스가 내 작업공간을 기억하는 다이어리로 생각하면 될뜻!
<빌드정보 란?>
개발자가 작성한 소스코드(Java,C,Python 등)는 컴퓨터가 바로 이해할 수 없기 때문에, 컴퓨터가 이해할 수 있는
실행파일(바이너리)로 변환해야 함. 이 과정이빌드 임
빌드가 끝나면 작성한 코드가 실행가능한 형태(.exe파일, .jar파일)로 변환되니까, 이 파일을 다른 컴퓨터에서 실행
하거나 배포할 수 있다.
<JDK 와 이클립스의 관계>
JDK(Java Development kit) - JDK는 소프트웨어 개발 키트 -
- 주된 역할 : JDK는 Java로 프로그램을 작성하고 컴파일해서 실행파일로 만들고, 그 파일을 실행할 수 있게 함
- 컴파일 : 우리가 코드를 쓰면 JDK가 그 코드를 기계가 이해할 수 있는 파일로 변환
- 라이브러리 제공 : 자주 사용하는 코드들이 모여있는 Java 라이브러리도 포함되어 있어서 개발이 편리
이클립스(Eclipse)
IDE(Integrated Development) - 이클립스는 개발도구 -
- 주된 역할 : 이클립스는 코드 작성, 편집, 디버깅 등을 쉽게 할 수 있도록 도와주는 편리한 작업환경을 제공
- 코드를 쓰는 동안 오류를 바로 알려주거나, 코드 자동완성 기능 등을 제공해서 개발을 빠르고 쉽게 해줌
- 이클립스 자체는 코드를 실행하거나 컴파일하는 기능은 없고, JDK를 불러와서 그 기능을 이용
▶즉 이클립스는 우리가 코드를 작성하면 그 코드를 JDK를 사용해 컴파일하고, 실행할 때도 JDK의 기능을 사용
JDK가 없으면 이클립스는 Java 프로그램을 실행할 수 없다.
<JDK 와 JRE>
JRE(Java Runtime Environment)
JRE는 Java로 작성된 프로그램을 실행할 때 필요한 환경. JRE는 JDK에 포함되어 있다.
이클립스가 Java 프로젝트를 실행할때, JDK에서 JRE를 불러와서 프로젝트에 추가.
즉, JRE System Library는 JDK 내에 있는 JRE를 이용해 프로젝트가 제대로 실행될 수 있도록 도와준다.
여기까지 정리하고 나니 위 오류 들은 JDK경로 설정과 관련이 있는 것 같다.
metadata를 지우고 해보아도 이클립스만 따로 설치하고 진행해도 아래 오류는 없어 지지 않았다.
Problems occurred while trying to save the state of the workbench.
Mutiple problems have occurred. An internal error occurred during:"Building".
[이클립스에서 JDK 설정]
먼저, PC에 JDK가 설치되어 있는지 확인하고, 설치경로를 알아둬야 함
1. Eclipse 상단 메뉴에서 Window > Preferences를 클릭한다.
2.왼쪽 메뉴에서 Java > Installed JRES로 이동한다.
3. 우측에 Add버튼을 클릭한다.
Standard VM을 선택하고 NEXT를 클릭한다.
4. JRE home 경로에 PC에 설치된 JDK 폴더 경로를 입력한다.
예를 들어, C:\Program Files\Java\jdk-버전과 같은 경로이다.
그런데 Installe JRE에서 " C:\Program Files\Java\jdk-11"(현재 내pc에 jdk폴더경로)가 아닌
C:\dev\eclipse\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.4.v20240802-1551\jre
로 되어 있는 이유는 이클립스가 기본적으로 자체적으로 내장된 JRE(즉, java Runtime Environment)를
사용하는 설정으로 되어 있기 때문.
이클립스는 설치될 때 별도의 JDK를 지정하지 않으면, 이클립스 설치 폴더 내부에 있는 내장 JRE를 사용.
이 JRE는 이클립스를 실행하고 기본적인 Java프로그램을 실행하기 위한 최소한의 환경을 제공하지만,
JDK처럼 개발도구(컴파일러 등)를 포함하지는 않는다.