Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JEP220更改后,tools.jar是否与JRE一起预装?_Java_Java 9_Tools.jar - Fatal编程技术网

Java JEP220更改后,tools.jar是否与JRE一起预装?

Java JEP220更改后,tools.jar是否与JRE一起预装?,java,java-9,tools.jar,Java,Java 9,Tools.jar,似乎表明在JDK和JRE安装到lib目录之后 动态链接的库和完整的内部 JDK的实现 例如,既然它说“完成”,这是否意味着以前没有随JRE一起提供的tools.jar,现在确实作为libjvm的一部分在JRE上提供 分析Ubuntu软件包 JDK版本似乎没有在lib/下安装任何额外的模块,尽管它确实在jmods/下安装了大量模块。AFAIU,.jmods与一个附带模块化映像的应用程序相关,但是它们对于构建应用程序不是严格必需的吗 我知道类似的问题在JDK9之前的世界已经被问过很多次了,但

似乎表明在JDK和JRE安装到
lib
目录之后

动态链接的库和完整的内部 JDK的实现

例如,既然它说“完成”,这是否意味着以前没有随JRE一起提供的
tools.jar
,现在确实作为
libjvm
的一部分在JRE上提供

分析Ubuntu软件包

JDK版本似乎没有在
lib/
下安装任何额外的模块,尽管它确实在
jmods/
下安装了大量模块。AFAIU,
.jmods
与一个附带模块化映像的应用程序相关,但是它们对于构建应用程序不是严格必需的吗


我知道类似的问题在JDK9之前的世界已经被问过很多次了,但是在JEP220引入了重大的变化之后,JDK安装提供了哪些不仅仅是JRE安装提供的额外API?

jmod文件是打包的模块,由
jlink
工具使用,其他什么都没有。现在一切都是模块,自JDK 9以来,不需要tools.jar。以前位于tools.jar中的类现在位于各自的模块(jdk.compiler、jdk.javadoc等)中。你的问题是什么?@AlanBateman似乎,我可以通过JRE安装调用Java编译器API,而在9之前,我必须拥有完整的JDK,因为AFAIU,编译器API在tools.jar中,它只随完整的JDK一起提供。因此,我想知道现在just JRE是否具备了人们所需要的一切,包括以前在tools.jar中的内容?java--列出模块list
jdk.compiler
?如果是这样的话,那么您使用的是一个具有java编译器的运行时映像。@实际上,存在
java.compiler
jdk.compiler
。我想JRE现在确实附带了完整的API,或者这可能正是Ubuntu决定打包它的方式。你介意把你的评论发布为答案,这样我就可以接受了。我不知道那里发生了什么,也许他们正在从运行时映像中剥离二进制文件。我建议用一个bug报告来指出java编译器在jdk.compiler模块中,运行时映像声称它有这个模块,但没有java启动器是疯狂的。