如何在Java 11中不使用jre的情况下使用jdk

时间:2018-10-01 05:11:58

标签: java java-8 migration java-11

我们计划迁移Java 8项目以使用Java11。但是我注意到Java 11没有JRE文件夹。

在Java 9和Java 10中,更改了文件夹结构,即java\jdk1.xjava\jre1.x,其中x是Java 9或10。

但是在Java 11中,我只得到一个文件夹,即java\jdk-11。没有jre,我的客户将如何使用我的应用程序?

我了解到Java 11正在强制将应用程序模块化,并且需要使用jlink创建自己的jre才能在客户端中运行该应用程序。

我的理解正确吗?

3 个答案:

答案 0 :(得分:45)

20年来,JDK附带了JRE,这只是其功能的一部分,安装在系统的其他目录中。

实际上,它附带了两个相同的JRE,一个安装在JDK安装目录中,一个安装在JDK安装目录之外。

这总是令我感到困惑,因为这样做会使维护人员完全浪费精力,并且完全浪费了安装它的计算机上的磁盘空间,因为JRE只是复制了一些东西JDK已经可以做到了。

最后,对于Java 11,Oracle和OpenJDK团队决定结束这种愚蠢的做法,只分发一个东西,即JDK。 安装后,此JDK实际上在硬盘上要比以前的旧JRE小,甚至删除了一些合理的参数,即您想要为磁盘空间有限的设备使用单独的JRE,该参数从未解释为什么2个JRE会首先要安装一个JDK,但是这样做是为了证明需要JRE作为JDK的简化运行时环境。

Ergo,不需要单独的JRE,而且已经很久没有了,更不用说将其作为JDK安装的一部分并强制安装了。

不,您不需要创建自己的JRE。只需在客户端计算机上安装OpenJDK,并确保将$ JAVA_HOME / bin添加到系统路径中即可,就像处理旧JRE一样。

哦,剥去所有Java * .exe文件的Windows目录树(某些旧版本的JRE安装程序不会放在其中),以及系统路径(某些JRE安装程序也添加了一些奇怪的条目)。

答案 1 :(得分:8)

查看AdoptOpenJDK项目网站以下载最新的JRE和JDK https://github.com/AdoptOpenJDK/openjdk-jdk11

我已经使用他们的夜间构建来解决JDK软件包https://adoptopenjdk.net/releases.html?variant=openjdk11#x64_linux中缺少JRE的问题。

只需将JRE解压缩到JDK文件夹中就可以了。

enter image description here

答案 2 :(得分:6)

tl; dr

  

我的客户如何在不使用jre的情况下使用我的应用程序?

➥在基于Java的应用程序中捆绑Java实现。

了解以下信息:

详细信息

  

我了解到Java 11正在强制模块化我们的应用程序

不,严格来说,不需要模块化。大多数现有的应用程序都可以在Java 11中按原样运行。您可以继续在Java 11中进行开发而无需对代码进行模块化。但是对于您的情况,对于GUI桌面或移动应用程序,则需要在应用程序中打包JVM。模块化和使用 jlink 工具可能是实现此目的的最佳方法。相比之下,基于服务器的基于Servlet的应用程序或微服务服务器无需模块化,尽管最终可能这样做是个好主意。

  

我注意到Java 11没有JRE文件夹。

Oracle不再打算让最终用户安装JRE或JDK。浏览器中的Java Applets和应用程序Java Web Start都已被淘汰,最终用户无需JRE。基于Java的应用程序应捆绑自己的Java实现。唯一有意识地安装JDK的人就是开发人员和服务器端sysadmins。

有些人失望地看到 Java Everywhere 梦想的逝去。而且他们可能不得不为每个主机OS(macOS,Linux,Windows等)构建其应用程序而感到恼火。另一方面,一些开发人员很乐意将Java实现(现在比以往更小)捆绑在一起,因为这消除了最终用户下载,安装,更新系统范围的Java实现的麻烦。还消除了与公司IT部门的麻烦,无需在用户的PC上安装Java。众所周知,将Java与应用程序捆绑在一起可简化测试和支持,并确切控制涉及的Java版本和发行版。顺便说一句,这种与应用程序捆绑在一起的Java并不是全新的:Apple已在macOS和iOS应用程序商店中支持了很多年。

重要:

这是流程图,可以帮助您在提供Java 11实现的各种供应商中找到并决定。

Flowchart diagram to aid in finding and choosing an implementation of Java 11 from various vendors.

相关问题