9

最新の jdk9 ビルドをダウンロードしました。

java version "9-ea"
Java(TM) SE Runtime Environment (build 9-ea+142)
Java HotSpot(TM) Server VM (build 9-ea+142, mixed mode)

実行すると

/path/jdk-9/bin/java -X

オプションが表示されます:

--add-exports <module>/<package>=<target-module>(,<target-module>)*
                  updates <module> to export <package> to <target-module>,
                  regardless of module declaration.
                  <target-module> can be ALL-UNNAMED to export to all
                  unnamed modules.

しかし、このオプションを使用しようとすると:

/path/jdk-9/bin/java --add-exports:java.base/jdk.internal.ref=ALL-UNNAMED -jar some.jar 

私は得る:

Unrecognized option: --add-exports:java.base/jdk.internal.ref=ALL-UNNAMED

-XaddExportsいくつかの投稿で見たものと同じです。

ここで何が間違っていますか?

特別なジグソー jdk9 ディストリビューションが必要ですか? 正直なところ、jdk9 のさまざまなバージョンについて少し混乱しています ;)

4

1 に答える 1

15

2 つのフラグの構文は少し異なります。コマンドライン引数のGNUスタイルの構文を実現することを目的としたJEP 293の取り組みの一環として、JVMが構文に-XaddExports切り替えたある時点(ビルド9-ea + 113だったと思います) 。--add-exports

現在の構文:

--add-exports <module>/<module>/<package>=<target-module>(,<target-module>)*
--add-reads <module>=<target-module>(,<target-module>)*

注:一部のユーティリティでは、引数の間にスペースがあるため、新しいスタイルの引数を受け入れることができない場合があります。その場合、これらのユーティリティを満たすため--key valueに、中間に等号を配置することもできます (つまり)。--key=value

古い構文:

-XaddExports:<module>/<module>/<package>=<target-module>(,<target-module>)*
-XaddReads:<module>=<target-module>(,<target-module>)*

残念ながら、結腸の変化へのスペースを見逃すのは非常に簡単です. 私自身、何度かお邪魔しました。

于 2016-11-01T23:04:44.043 に答える