Java 9 个选项 --add-exports 与 -XaddExports 无法识别
Java 9 options --add-exports vs. -XaddExports not recognized
我下载了最新的 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
也是如此。
我做错了什么?
我需要一个特殊的 jigsaw jdk9 发行版吗?老实说,我对不同的 jdk9 版本有点困惑;)
这两个标志的语法略有不同。在某些时候(我认为是构建 9-ea+113),JVM 从 -XaddExports
切换到 --add-exports
语法,作为 JEP 293 的一部分,旨在实现命令行参数的 GNU 风格语法。
当前语法:
--add-exports <module>/<module>/<package>=<target-module>(,<target-module>)*
--add-reads <module>=<target-module>(,<target-module>)*
注意: 某些实用程序可能无法接受新的 --key value
参数样式,因为它们之间有一个 space,在这种情况下,您可以put 还在中间放一个等号(即 --key=value
)以满足这些实用程序。
旧语法:
-XaddExports:<module>/<module>/<package>=<target-module>(,<target-module>)*
-XaddReads:<module>=<target-module>(,<target-module>)*
不幸的是,很容易错过 space 到冒号的更改。我自己搞砸了好几次。
我下载了最新的 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
也是如此。
我做错了什么?
我需要一个特殊的 jigsaw jdk9 发行版吗?老实说,我对不同的 jdk9 版本有点困惑;)
这两个标志的语法略有不同。在某些时候(我认为是构建 9-ea+113),JVM 从 -XaddExports
切换到 --add-exports
语法,作为 JEP 293 的一部分,旨在实现命令行参数的 GNU 风格语法。
当前语法:
--add-exports <module>/<module>/<package>=<target-module>(,<target-module>)*
--add-reads <module>=<target-module>(,<target-module>)*
注意: 某些实用程序可能无法接受新的 --key value
参数样式,因为它们之间有一个 space,在这种情况下,您可以put 还在中间放一个等号(即 --key=value
)以满足这些实用程序。
旧语法:
-XaddExports:<module>/<module>/<package>=<target-module>(,<target-module>)*
-XaddReads:<module>=<target-module>(,<target-module>)*
不幸的是,很容易错过 space 到冒号的更改。我自己搞砸了好几次。