8

現在java8を使用している古いコードベースがあります。

jdk9-eaを使用するようにコードベースを移行しています。しかし、すべての sun.font クラスが以前のように利用できなくなっているようです。

error: package sun.font does not exist

より具体的には私が使用しています

  • 複合フォント
  • Font2D
  • FontDesignMetrics
  • フォントマネージャー
  • FontManagerFactory
  • SunFontManager

もっと..

4

1 に答える 1

12

モジュール システムの特徴は、新しいアクセシビリティ規則により、ライブラリ開発者が実装の詳細を強力にカプセル化できることです。sun.*簡単に言えば、およびパッケージのほとんどのタイプにcom.sun.*アクセスできなくなります。これは、Sun およびその後の Oracle が、これらのパッケージは一般消費向けではないと述べていることと一致しています。

回避策は、コマンド ライン フラグを使用して、コンパイルおよび起動時にこれらのパッケージをエクスポートすることです。

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

これによりsun.font、モジュールjava.desktopから、名前のない moduleを含むすべてのモジュールにパッケージがエクスポートされます。名前のないモジュールは、クラス パス上のすべてのクラスを収集するモジュールです。

于 2017-01-04T09:11:01.983 に答える