[오류 해결기] M1 맥북에서 JavaFX사용하기

JUNHO YEOM·2022년 12월 17일
3

오류해결기

목록 보기
3/3

사용하는 버전

  • Eclipse 2022-09 버전
  • 11.0.17.fx-zulu

현재 수강중인 교육에서 JavaFX를 사용할 일이 있었습니다.
Java로 코드를 작성하여 쉽게 GUI로 채팅이나 데이터를 불러오기 위해 사용되었는데요.
제가 사용하고있는 M1 맥북 프로에서는 SDK를 이용한 JavaFX가 실행되지 않았습니다.

해결방법

스택오버플로우 검색 결과 azul에서 JavaFX가 포함된 JDK 11이 있다는 검색 결과를 얻었습니다.

  1. SDKMAN을 사용하여 다운받아 주는 방법
  2. azul 홈페이지에 방문해서 다운받아 주는 방법

두가지 방법중 원하는 방법 하나를 선택하여 적용해 주면 되겠습니다.


1-1. SDKMAN 이용하여 다운받아 주기

다운로드 가능한 Java 버전 확인하기

sdk list java
11.0.17.fx-zulu 버전이 확인됩니다.

Liberica에서도 JavaFX가 포함된 버전을 찾을 수 있었습니다만, 사용해 보지 않았기 때문에 정상 작동을 확인한 zulu JDK 11버전을 다운받아 주겠습니다.


SDKMAN으로 다운로드 해주기

sdk install java 11.0.17.fx-zulu

명령어를 통해 JDK 버전을 다운받아 주었습니다.
다운받아진 경로를 확인한 이후, 2번 Eclipse에서 적용해 주기로 넘어갑니다.


1-2. azul JDK 11 다운로드하기

azul의 JavaFX번들 JDK 11다운로드 링크

링크에 접속해서 아래쪽을 살펴보면 다음과 같은 다운로드 화면이 나옵니다.
저는 .zip파일을 다운받아 주었습니다.



다음과 같은 파일명으로 JDK를 다운받았습니다.
폴더를 원하는 경로에 위치시키고, 2. Eclipse에서 적용하기로 넘어갑니다.


2. Eclipse에서 적용해 주기

  • Eclipse를 실행해 줍니다.

  • Eclipse -> Preferences 혹은 ⌘ + , 버튼을 눌러 Preferences에 접속해 줍니다.

  • 좌측 항목중 Java -> Installed JREs 항목에 들어가 줍니다.

  • Add... 항목을 눌러 줍니다.


JRE Type 화면

MacOS X VM을 선택해주고 Next를 눌러줍니다.

Add JRE

Directory 버튼을 눌러 JDK가 설치된 경로로 들어가 줍니다.

SDKMAN으로 다운받아 주었을 경우 .sdkman폴더의 다운로드된 JDK가 위치하는 경로는 .sdkman/candidates/java 입니다.



sdk를 이용해서 설치했기 때문에 SDKMAN 내부의 JDK버전이 저장 되어있는 경로를 찾아 JDK를 불러와 주었습니다.

11.0.17.fx-zulu 버전 적용 해주기

Apply and Close를 누르고 JDK를 적용해 줍니다.

JDK 적용한 class 파일 실행해보기

javaFX가 동작하는 것을 확인할 수 있습니다.

참고

외부에서 JavaFx를 불러왔던 project에서 해당 설정을 적용할 경우

Project에서 JavaFX를 VM arguments에 module path로 넣어주고, Java Build Path로 JavaFx파일을 넣어둔 상태에서는 Fx가 포함된 JDK가 동작하지 않습니다.
외부 설정으로 Fx를 포함시킨 경우를 말합니다.
Fx가 포함된 JDK를 사용한다면, 기존에 외부에서 불러왔던 JavaFx모듈의 설정은 모두 삭제해야 합니다.


이미 적용한 JavaFX 삭제하기

class의 properties에서 VM arguments로 설정해둔 JavaFX 모듈의 경로를 삭제해 줍니다.

Arguments 부분


Java Build Path 부분

project 우측클릭 -> Java Build Path -> 기존의 JavaFX 삭제

0개의 댓글