У нас есть настольное свинг-приложение, которое отлично работает с oracle jdk1.8. После перехода на openjdk11 мы получили несколько ненайденных исключений для классов com.sun.java.swing.Painter. Мы решили эту проблему, сгенерировав jar-пакет, содержащий некоторые классы com.sun.java.swing. Painter.java и несколько классов 4-5 и добавил его
java --patch-module java.desktop=custombundle.jar -classpath path_of_jars start_class
Теперь все отлично работает с AdoptOpenJDK11 или opendjdk11 в системах Windows. Но в Linux (64-разрядная версия ubnutu или любая среда Linux на базе ARM) мы получили еще один класс, не найденный/нет исключений определения класса, связанных с com.sun.java.swing.plaf.windows.WindowsLookAndFeel из сторонние библиотеки, которые мы использовали.
Мы не можем удалить вызовы com.sun.java.swing.plaf.windows.WindowsLookAndFeel, потому что они находятся в сторонних библиотеках. Компания, предоставляющая библиотеки, а также другие форумы предлагают добавить:
--add-exports java.desktop/com.sun.java.swing.plaf.windows=ALL-UNNAMED
java --add-exports java.desktop/com.sun.java.swing.plaf.windows=ALL-UNNAMED --patch-module java.desktop=custombundle.jar -classpath path_of_jars start_class
но после добавления этого получите предупреждение, например
ВНИМАНИЕ: пакет com.sun.java.swing.plaf.windows отсутствует в java.desktop
и мы получили все еще класс не найденных исключений для com.sun.java.swing.plaf.windows.WindowsLookAndFeel
Я попробовал java.desktop/com.sun.java.swing.plaf.gtk вместо java.desktop/com.sun.java.swing.plaf.windows, предупреждение исчезло, но все еще не работает. Какие-либо предложения?
Принять версию Openjdk: последняя (11.0.8.10)
Ubuntu: 20.04 (последняя)
Примечание. Swing Issue на Java 10 не помогло.