从 java 8 切换到 java 11
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/53128835/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Switching to java 11 from java 8
提问by Aviral Ahuja
I have downloaded and installed oraclejdk11 from oracle official site and modified PATH & JAVA_HOME variable in system environment variable on windows
我已经从oracle官方网站下载并安装了oraclejdk11,并在windows的系统环境变量中修改了PATH & JAVA_HOME变量
C:\Users\Aviral>javac -version
C:\Users\Aviral>javac -version
javac 11.0.1
javac 11.0.1
C:\Users\Aviral>java -version
C:\Users\Aviral>java -version
java version "1.8.0_102"
java版本“1.8.0_102”
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
Java(TM) SE 运行时环境(构建 1.8.0_102-b14)
Java HotSpot(TM) 64 位服务器 VM(构建 25.102-b14,混合模式)
i know that jdk11 do not contain jre but how can i run a java program from cmd in java 11
我知道 jdk11 不包含 jre 但我如何在 java 11 中从 cmd 运行 java 程序
采纳答案by Prasanth Nair
bin folder contains all the traditional JRE tools. In Java 11, both JDK and JRE tools are consolidated so that there is no JRE within JDK 11.
bin 文件夹包含所有传统的 JRE 工具。在 Java 11 中,JDK 和 JRE 工具都已合并,因此 JDK 11 中没有 JRE。
回答by Slaw
The JDK includes the JRE which you can launch by using the java
executable in the bin
folder. You use this executable just like any other executable.
JDK 包含 JRE,您可以使用java
文件bin
夹中的可执行文件启动它。您可以像使用任何其他可执行文件一样使用此可执行文件。
When you type java
in the command line it is actually shorthand. It searches your PATH
until it finds the first matching java
executable. If you want to specify a different java
executable you can give the absolute path to the executable.
当您java
在命令行中键入时,它实际上是速记。它会搜索您的文件,PATH
直到找到第一个匹配的java
可执行文件。如果要指定不同的java
可执行文件,可以提供可执行文件的绝对路径。
C:\Users\Avril> "C:\Program Files\Java\jdk-11.0.1\bin\java" -jar path\to\file.jar
You may be wondering, if you've set JAVA_HOME
and PATH
to point to JDK-11, why does java -version
still use Java 8?
您可能想知道,如果您已经设置JAVA_HOME
并PATH
指向 JDK-11,为什么java -version
仍然使用 Java 8?
Take a look at your PATH
and you'll likely find something like C:\ProgramData\Oracle\Java\javapath
as one of the first entries (see this). This entry was added automatically when you installed Java 8 and points to the Java 8 executables (java
, javaw
, and javaws
). Since it's before your %JAVA_HOME%\bin
entry, it takes precedence. However, ...\javapath
doesn't contain javac
and that's why javac -version
used JAVA_HOME
(Java 11).
看看你的PATH
,你可能会发现像C:\ProgramData\Oracle\Java\javapath
第一个条目之一(见这个)。当你安装了Java 8点到Java 8可执行文件自动添加该条目(java
,javaw
,和javaws
)。由于它在您%JAVA_HOME%\bin
输入之前,因此优先。但是,...\javapath
不包含javac
,这就是javac -version
使用JAVA_HOME
(Java 11)的原因。
回答by katiforis
In order to execte program from another folder than bin using java 11 you must set the JAVA_HOME path as follows from CMD:
为了使用 java 11 从 bin 之外的另一个文件夹执行程序,您必须从 CMD如下设置 JAVA_HOME 路径:
Open CMD as Administrator
以管理员身份打开 CMD
Set JAVA_HOME to JDK 11 bin folder
将 JAVA_HOME 设置为 JDK 11 bin 文件夹
setx -m JAVA_HOME "C:\Program File\Java\..."
回答by Badri Paudel
I upgraded to JDK 11 from JDK 8. After adding Java 11 to the path [ point path up to
我从 JDK 8 升级到 JDK 11。将 Java 11 添加到路径后 [指向路径
bin foler ] and JAVA_HOME [ only upto jdk folder (don't include bin )]
bin foler ] 和 JAVA_HOME [仅限 jdk 文件夹(不包括 bin )]
successfully,
成功地,
java -version
was still pointing to the previous java version (java 8 in my case.)
java -version
仍然指向以前的 java 版本(在我的例子中是 java 8。)
Then, I ran a command "setx -m JAVA_HOME "C:\Program Files\Java\jdk-11.0.7"
然后,我运行了一个命令 "setx -m JAVA_HOME "C:\Program Files\Java\jdk-11.0.7"
Now java -version
or javac -version
both shows java 11.
现在java -version
或javac -version
两者都显示 java 11。
I hope it helps you too.
我希望它也能帮助你。