개발 공부/자바(Java)

JavaFX(Scene Builder) 프로젝트 생성 후 오류 해결방법(jdk 9 이후 모듈 있는 버전)

가이윤 2021. 10. 31. 23:50

이클립스에서 jdk 9 버전부터 모듈(module)이 생겼다.

이번에 JavaFX Scene Builder 이용해서 프로젝트를 하려고 하는데, 모듈 때문인지 사소한 오류들이 많이 생겼는데, 모르는거 찾아가면서 해결했다 ㅎㅎ

그냥 jdk 8버전으로 해서 모듈 없이 진행하는 방법도 있지만 최신 방법에서도 문제 없이 이용해보고 싶어서 jdk 9 버전 이후를 사용해서 이클립스를 이용해보았다. 

나는 작성일 기준으로 jdk 17 버전을 이용하고 있다. (jre는 15로 설정되어있다.)

아마 JavaFX Scene Builder를 jdk 9 부터 모듈이 추가되는 버전을 사용하는 사람들은 비슷한 에러를 겪었을거 같다.

우선 이 글은 JavaFX Scene Builder와 JavaFX, 이클립스에서 JavaFX 플러그인을 막 설치한 후의 상황이라고 가정하고 진행하겠습니다.

 

기타 클릭

 

JavaFX Project 클릭

 

하면서 알게 된 것이 있는데, 프로젝트 이름과 똑같이 모듈 이름도 자동으로 정해진다. 그런데 모듈 이름에는 공백이 포함이 되면 오류가 생긴다. 그래서 프로젝트 이름을 정할때 공백을 넣고 싶으면 언더바(_)를 넣는 것이 좋다.

 

빨간줄 부분을 체크를 해제하고 다음을 누른다. 그런데 이유는 모르겠는데, 체크를 해제해도 저 파일이 생성이 된다. (..?)

 

Language 는 FXML, 나머지는 본인이 원하는대로 하면 된다.

이 단계에서 설정을 해야 FXML 파일과 Controller 파일이 생성된다.

이 단계에서 Language를 None하거나 그냥 넘어가면 FXML 파일과 Controller 파일이 생성되지 않아서 따로 생성해줘야한다.

 

보면 프로젝트 생성시에 모듈 생성 체크를 해제했는데도 생성되어있다 ㅡㅡ?

그리고 표시된 나머지 두 파일은 좀 전의 단계를 건너뛰면 없을 것이다.

처음 이렇게 프로젝트를 생성하면 오류 표시가 많을 것이다 ㅜ

이제 JavaFX 와 JavaFX Scene Builder를 설치했으면 설정해줘야 하는게 있다.

Window > Preferences > JavaFX 로 들어간다.

표시된 부분에 설치한 JavaFX Scene Builder 실행파일 위치를 입력하고 적용 닫기.

이걸 적용해야 씬빌더를 이클립스에서 실행시킬 수 있다.

 

Window > Preferences > Java -> 빌드 경로 -> 사용자 라이브러리에 들어가면 아무것도 없을텐데, '새로 만들기'를 클릭. 이름 짓고 만들어준다. (javafx 라고 지었다.)

다음에 라이브러리를 클릭하고 '외부 JAR 추가' 클릭.

라이브러리를 한 번에 전부 추가해준다.

 

(중요!)

(저는 이클립스에 한글 패치를 적용해서 메뉴 이름들이 한글입니다.)

프로젝트 폴더에 마우스대고 오른쪽 클릭해서 빌드 경로(Build Path) -> 빌드 경로 구성 클릭.

위 화면이 나오는데, 여기서 설정하는것 때문에 나중에 오류가 떠서 시간 좀 걸렸다.

이 방법 말고 프로젝트 폴더에 오른쪽 마우스 클릭해서 JavaFX 라이브러리를 추가하는 방법도 있는데, 그렇게 하면 위의 빌드 경로에서 Modulepath에 라이브러리가 추가되는 것이 아니라, 클래스 경로(class path)에 라이브러리가 추가된다. 그러면 이것 때문에 모듈에서 라이브러리를 찾을 수 없다고 오류가 뜬다.

만약 이 방식으로 추가했으면 클래스 경로에 있는 라이브러리를 드래그해서 Modulepath로 옮기면 된다.

번거롭기 때문에 위 화면에서 바로 Modulepath 클릭하고 추가해준다.

 

사용자 라이브러리 선택.

 

좀 전에 만들었던 라이브러리 선택 후 완료.

 

javafx 라이브러리가 추가됐고 오류 표시도 없어진 것을 알 수 있다.

 

실행이 정상적으로 잘 되는 것을 알 수 있다.