취미/게임

Macbook M1 (AArch64) 에서 beatoraja 구동

lazykuna 2024. 10. 4. 19:39

...는 사실 이미 한 일본인 블로거가 다룬 내용이다.

그래도 조금 더 작업을 쉽게 하고자 몇 가지 가이드를 덧붙여서 글을 써 놓는다.

  1. 반드시 java-x64 을 사용할 것. brew 를 이용하여 설치하면 java-aarch64가 받아지는데, beatoraja가 x64로 컴파일/링킹된 탓에 이대로 실행하면 링킹 오류가 발생하게 된다.
  2. 마찬가지 이유로 javaFX도 X64 버전으로 받아서 넣어야 한다.
  3. java_x64나 lib는 적당히 `/usr/local` 밑에다 집어 넣고, 아래와 같이 `beatoraja-config.command` 를 개조해 넣으면 깔끔하고 쉽게 쓸 수 있다.
export _JAVA_OPTIONS='-Dsun.java2d.opengl=true -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel'
cd "$(dirname "$0")"
exec java_x64 --module-path "lib/java/javafx-x64-macos" --add-modules javafx.controls,javafx.fxml -Xms1g -Xmx4g -jar beatoraja.jar

 

 

M1 Pro, macOS 14 Sonoma 기준으로 아주 잘 돌아간다.


Troubleshoot

Graphics Device initialization failed for :  es2, sw 오류 발생

javaFX가 설치되어 있지 않거나 유효하지 않으면 발생하는 문제다. x64 대신 aarch64 써도 동일한 문제가 생김.

Caused by: java.lang.UnsatisfiedLinkError ... libgdx.lib 오류 발생

java 런타임이 aarch64 버전일 경우 위와 같은 링킹 문제가 생긴다. libgdx.lib 이름은 뜰 때도 있고 아닐때도 있다. 네이티브로 돌리고 싶은 마음은 알겠지만, 곱게 로제타를 쓰도록 하자.