我已经从oracle官方站点下载并安装了oraclejdk11,并修改了windows系统环境变量中的路径& JAVA_HOME变量。
C:\Users\Aviral>javac -version
javac 11.0.1
C:\Users\Aviral>java -version
java版本"1.8.0_102"
Java(TM) SE运行时环境(build 1.8.0_102-b14)
Java HotSpot(TM) 64位服务器VM (build 25.102-b14,混合模式)
我知道jdk11不包含jre,但是如何在java 11中从cmd运行java程序?
发布于 2018-11-03 07:02:45
JDK包含JRE,您可以在java文件夹中使用bin可执行文件启动JRE。您可以像其他任何可执行文件一样使用此可执行文件。
当您在命令行中输入java时,它实际上是速记。它搜索PATH,直到找到第一个匹配的java可执行文件。如果要指定不同的java可执行文件,则可以为该可执行文件提供绝对路径。
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仍然使用Java8?
看看您的PATH,您可能会发现类似于C:\ProgramData\Oracle\Java\javapath的东西是最早的条目之一(see this)。此条目在安装Java 8时自动添加,并指向Java8可执行文件(java、javaw和javaws)。因为它在%JAVA_HOME%\bin条目之前,所以它是优先的。然而,...\javapath不包含javac,这就是为什么javac -version使用JAVA_HOME (Java11)。
发布于 2018-11-03 06:25:55
bin文件夹包含所有传统的JRE工具。在Java 11中,JDK和JRE工具都是统一的,因此JDK 11中没有JRE。
发布于 2018-11-03 07:45:23
为了使用java 11从另一个文件夹(而不是bin )执行程序,您必须设置JAVA_HOME路径,如下所示,来自CMD
以管理员身份打开CMD
将JAVA_HOME设置为JDK11bin文件夹
setx -m JAVA_HOME "C:\Program File\Java\..."https://stackoverflow.com/questions/53128835
复制相似问题