Java 11没有设置Java环境变量

5
通常在安装更新的JRE时,环境变量会被设置,以便在CMD中运行任何Java命令都会使用新版本。我刚刚安装了JDK 11,它没有JRE等效物 - 好吧,它在JDK中 - 但Java命令仍然被发送到JRE 8。对我来说这没有问题,我总是可以自己更改环境变量并指向“C:\Program Files / java / jdk-11/bin/java.exe”,但是任何想要使用我需要Java 11的程序的人将没有设置他们的变量,这有点过分要求他们这样做。为什么在标准的Java 11安装中它们没有被设置?我是不是很傻?

但是任何想要使用我的程序的人,都需要Java 11,无论如何他们是否需要在Java11上运行代码呢?我的意思是,您是否假定在Java 11中开发的代码将与Java 8运行时兼容? - Naman
2
@nullpointer 我认为这就是重点。你必须要求用户安装Java 11并让他们调整环境变量。在我看来,最好的解决方案是将使用jlink生成的JRE与应用程序捆绑在一起。 - Jorn Vernee
@JornVernee同意了我的看法,我相信为了简化这一部分的工作,像jlink这样的工具已经在为创建带有捆绑JRE的应用程序而进行了一些进展。但是,这仍然需要长期的努力。 - Naman
捆绑JRE似乎是完全浪费时间 - 我猜它保持了平台无关性之类的,但我刚刚编写了一个批处理脚本,搜索JDK 11文件夹并从那里运行。这样可以使程序更小! - Edmund Bevan
1个回答

0

Oracle仍在推8作为“终端用户”Java安装包。这就是为什么你只能在java.com上找到它的原因。更新版本的Java要么用于服务器后端使用,要么与应用程序捆绑在一起。后者是你想要的选择。


2
我仍然需要找到一个权威的来源,明确说明我可以将通过jlink创建的Java 11 JRE与非GPL软件捆绑在一起。所有许可证文件都谈论“未修改”的分发。而且类路径扩展也不清楚,因为它显然并不适用于JDK的所有部分。 - user330315
你知道Java 8将成为“终端用户”版本的时间有多久吗?我很惊喜,尽管主要版本仍然是Java 8风格的“随处可运行”的JAR文件,但没有人向我报告任何Java 11问题,这可能是因为Java 8仍然是终端用户的默认版本。 - CBusDeveloper
@CBusDeveloper Azul有一篇很好的文章介绍了这个问题(以及一个Java 8倒计时时钟):https://www.azul.com/think-moving-jdk-9-sometime-next-year-think/ - Jorn Vernee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接