引入该模块系统后,Java9及以上版本是否仍与平台无关?
我不能理解在我们的java语言中引入模块系统之后。java9及以上版本是否仍与平台无关?我问这个问题是因为我读到现在每个应用程序都有自己的jre。那么,这个jre将如何在所有操作系统(如windows、Linux或Mac操作系统)上运行。您正在将Java平台最近所做的两个不同更改混为一谈:引入该模块系统后,Java9及以上版本是否仍与平台无关?,java,java-9,java-10,java-11,Java,Java 9,Java 10,Java 11,我不能理解在我们的java语言中引入模块系统之后。java9及以上版本是否仍与平台无关?我问这个问题是因为我读到现在每个应用程序都有自己的jre。那么,这个jre将如何在所有操作系统(如windows、Linux或Mac操作系统)上运行。您正在将Java平台最近所做的两个不同更改混为一谈: Java Web Start和Applet技术的退役 模块化 退役的桌面技术 最近,甲骨文宣布,除此之外,还将逐步淘汰这些技术。请参阅Java 9发行说明中的项目: Java部署技术已被弃用,并将在未来版
- Java Web Start和Applet技术的退役
- 模块化
†在相关说明中,您可能希望阅读白皮书,了解如何以及在何处获得应用程序的Java实现,以及免费或付费版本中可能提供或不提供的支持
顺便说一下,您可能会在上找到一些有用的信息,其中包括选择Java实现的各种源的流程图。模块系统通常不会影响Java的操作系统独立性。使用模块系统的Java应用程序需要在JRE中运行。这可以是一个特定于操作系统的预装JRE,也可以是一个定制的运行时映像(嵌入应用程序的JRE) 模块系统的主要目的是为您提供一种管理方式,将应用程序拆分为不同的逻辑模块。例如,可以加载到不同的.jar文件中,这些文件可以在运行时加载-无论在哪个操作系统上 总之,您有以下选项:
- 确保您的客户端预装了正确的JRE。这可能很危险,因为(通常)您无法控制他的更新行为
- 将您的应用程序与官方JRE一起发布
- 使用JLink定制您自己的、特定于应用程序和操作系统的运行时映像。将其与您的应用程序捆绑发货 但是,假设我不知道我的客户机将运行什么操作系统,那么如何运行呢 服务器将决定他应该给他什么样的图像。i、 例如,苹果 映像、Linux映像或Windows exe 您必须了解目标操作系统并提供正确的运行时映像
不会的。您将为要分发的每个平台绑定一个单独的JRE。但适用于所有平台的JRE仍然是免费的,同样的Java代码仍将在适用于任何平台的JRE上运行。虽然Java 9使JRE更容易发布,它更紧凑,更适合于单个应用程序的需要,但您不必这样做。如果你是alrea