@enceladus181
любитель программирования

Что делать если при запуске программы, работающей с графикой получаю ошибку java.lang.UnsatisfiedLinkError?

Добрый день! Прохожу курс Java Programming with purpose на Coursera. На данном этапе приходится делать программы для работы с графикой. Начал работать на Windows и с графикой не было проблем. Позже, пришлось перейти на Linux и теперь при запуске тех же программ стал получать следующие ошибки:
Exception in thread "main" java.lang.ExceptionInInitializerError
at Triangle.main(Triangle.java:5)
Caused by: java.awt.HeadlessException
at java.desktop/java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:164)
at java.desktop/java.awt.Window.(Window.java:553)
at java.desktop/java.awt.Frame.(Frame.java:428)
at java.desktop/java.awt.Frame.(Frame.java:393)
at java.desktop/javax.swing.JFrame.(JFrame.java:180)
at StdDraw.initGUI(StdDraw.java:806)

Пробовал команду: java -Djava.awt.headless=true
После добавил в программу System.setProperty("java.awt.headless", "false") и ошибка изменилась на:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-21-openjdk-21.0.4.0.7-2.fc40.x86_64/lib/libawt_xawt.so
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2422)
at java.base/java.lang.Runtime.load0(Runtime.java:852)
at java.base/java.lang.System.load(System.java:2025)
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:331)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:197)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:139)
...

Подскажите пожалуста, что ещё можно сдалать?

Версия java:

openjdk 21.0.4 2024-07-16
OpenJDK Runtime Environment (Red_Hat-21.0.4.0.7-2) (build 21.0.4+7)
OpenJDK 64-Bit Server VM (Red_Hat-21.0.4.0.7-2) (build 21.0.4+7, mixed mode, sharing)

Система:
6.10.8-200.fc40.x86_64
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
xez
@xez Куратор тега Java
TL Junior Roo
0. Используйте sdkman для управлением версиями java, раз уж у вас posix система
1. Вам нужна версия jdk fx.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы