从Java 8切换到Java 11 [英] Switching to java 11 from java 8
问题描述
我已经从oracle官方站点下载并安装了oraclejdk11,并修改了PATH& Windows上系统环境变量中的JAVA_HOME变量
I have downloaded and installed oraclejdk11 from oracle official site and modified PATH & JAVA_HOME variable in system environment variable on windows
C:\ Users \ Aviral> javac -version
C:\Users\Aviral>javac -version
javac 11.0.1
C:\ Users \ Aviral> java -version
C:\Users\Aviral>java -version
java版本"1.8.0_102"
Java(TM)SE运行时环境(内部版本1.8.0_102-b14)
Java HotSpot(TM)64位服务器VM(内部版本25.102-b14,混合模式)
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
我知道jdk11不包含jre,但是如何在Java 11中从cmd运行Java程序
i know that jdk11 do not contain jre but how can i run a java program from cmd in java 11
推荐答案
JDK包含JRE,您可以使用bin
文件夹中的java
可执行文件来启动JRE.您可以像其他任何可执行文件一样使用此可执行文件.
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.
当您在命令行中键入java
时,它实际上是简写形式.它搜索您的PATH
,直到找到第一个匹配的java
可执行文件.如果要指定其他java
可执行文件,则可以提供该可执行文件的绝对路径.
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.
C:\Users\Avril> "C:\Program Files\Java\jdk-11.0.1\bin\java" -jar path\to\file.jar
您可能想知道,如果已将JAVA_HOME
和PATH
设置为指向JDK-11,为什么java -version
仍然使用Java 8?
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?
看看您的PATH
,您可能会发现像C:\ProgramData\Oracle\Java\javapath
这样的东西作为第一批条目之一(请参阅这个).该条目是在安装Java 8时自动添加的,并指向Java 8可执行文件(java
,javaw
和javaws
).由于它在您的%JAVA_HOME%\bin
条目之前,因此具有优先权.但是,...\javapath
不包含javac
,这就是javac -version
使用JAVA_HOME
(Java 11)的原因.
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).
这篇关于从Java 8切换到Java 11的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!