2017-01-04 13 views
6

Mam mój stary kod, który obecnie używa java8.Jak uzyskać wszystkie klasy sun.font w jdk9

Przeprowadzam migrację kodu do użycia jdk9-ea. Ale wygląda na to wszyscy sun.font zajęcia są teraz niedostępne podobny sposób, w jaki kiedyś wcześniejsze

error: package sun.font does not exist 

Dokładniej Używam

  • CompositeFont
  • Font2D
  • FontDesignMetrics
  • FontManager
  • FontManagerFactory
  • SunFontManager

i więcej ..

+6

Nie musisz. W Javadoc pojawiło się ostrzeżenie przed nieprzybywaniem klas "sun. *" Przez co najmniej 20 lat. Napraw kod. – EJP

Odpowiedz

8

Cechą charakterystyczną tego systemu jest to, że moduł pozwala programistom biblioteki silnie hermetyzacji szczegóły implementacji dzięki nowemu accessibility rules. Krótko mówiąc, większość typów w pakietach sun.* i com.sun.* nie będzie już dostępna. Jest to zgodne z Sunem, a później Oracle, że te pakiety nie są przeznaczone do publicznej konsumpcji.

Rozwiązaniem jest eksport tych pakietów na skompilować i uruchomić razem z flagą Wiersz poleceń:

--add-exports java.desktop/sun.font=ALL-UNNAMED 

ta eksportuje pakiet sun.font z modułu java.desktop do wszystkich modułów w tym unnamed module, która to ten, który zbiera wszystkie klasy na ścieżce zajęć.