2016-10-28 6 views
4

私はhttps://jdk9.java.netからjava 9をダウンロードし、それを私のWindows 10マシンにインストールしました。
Java 9にはjshellがあります。これを評価してJavaプログラミングを学ぶことができます。
いくつかの例では、sun.audio.*などのsunパッケージをインポートします。しかし、jshellでは、sunパッケージをインポートしようとするたびに、sunパッケージが存在しないことが示されます。なぜサンパッケージをインポートできないのですか?

一部のアプリケーションはJava 9では動作しません。おそらく互換性がありません。

答えて

8

これは、以前の方法とは対照的に、Java 9がの実数のカプセル化をサポートする方法に関連しているようです。パブリックAPIがそれらの内部クラスを使用していたため、内部クラスがコンシューマに公開された可能性があります。 Sunの内部パッケージにも同様の問題がありました。

  • アプリケーション開発者のためのJDKおよびJRE
  • 隠すプラットフォームの内部をモジュール化(例えばsun.misc)
  • モジュールシステム:

    Javaの9のためのモジュール性の物語の中で3つのトピックがあります。

http://paulbakker.io/java/java-9-modularity/

具体的には、太陽の内部モジュールはデフォルトではインポートできません。です。

つまり、修正のおかげでJShellにモジュールを追加することができます。

サポート「モジュールを追加」と同様に「輸出を追加する」と 「モジュールパス」、人々が自分のモジュラーコードを探索できるようにすることがあるはずです。 https://bugs.openjdk.java.net/browse/JDK-8166649

あなたは、この修正プログラムが利用可能なときに見るためにそのバグチケットを追跡します。 4日前に解決されました。

+2

良い調査!この修正は、jdk9.java.netのJDK 9の早期アクセスビルドで、来週末までに利用可能になるはずです。 –

関連する問題