java - 你使用哪个Java?在 Server 2016 上安装 JDK 和 JRE (10.0.1);设置 JAVA_HOME 和路径

标签 java tomcat

我正在准备 Tomcat 安装。我在 DEV 环境中,需要安装 JDK,其中还包括 JRE。我取得了成功,但我认为我遇到了一些奇怪的 PATH 问题。 I was referencing - not explicitly - the instructions here.

  1. JDK 安装路径 - C:\java
  2. JRE 安装路径 - C:\java\jre
  3. JAVA_HOME 变量 - C:\java
  4. PATH var(列表顶部)- C:\java\bin
  5. PATH 还包括 - C:\Program Files (x86)\Common Files\Oracle\Java\javapath

当我从命令行测试以查看 java -version 是否正常时,我收到此错误:

<JAVA_HOME>/lib/ext exists, extensions mechanism no longer supported; Use - 
classpath instead.
.Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

但是,如果我手动浏览到 C:\java\jre\bin,然后运行 ​​java -version,它会告诉我版本很好,没有错误。

当我从 C:\java\bin\运行 java -version 时,我遇到了问题。

JRE和JDK中的java.exe有什么区别?为什么 JDK java.exe 这么不开心?

最佳答案

我想为后代回答我自己的问题,希望它能帮助其他人,比如我,是新手了解 Tomcat 对 Java 的要求。

这是我的观察:

  • 最终,我试图在一个旧的、“脏”的 java 文件夹中进行全新安装。我从一个全新的文件夹开始,这几乎解决了所有问题。运行 java -version 时,我没有收到原始问题中提到的错误。
  • 此时完全没有必要为 Tomcat 指定 JRE_PATHJAVA_PATH。这些是 Windows cmd 的环境变量,可以在安装期间被其他应用程序(如 Tomcat)引用。
  • JRE_PATHJAVA_PATH是环境变量,与PATH无关
  • JDK/JRE 安装将 C:\Program Files (x86)\Common Files\Oracle\Java\javapath 添加到 PATH。不知何故,该文件夹中的 3 个可执行文件只知道真正的 Java 文件夹结构在哪里。有相应的注册表项定义文件夹结构的位置。
  • 即使没有指定 JRE_PATH,Tomcat 也能够正确地挑选出 JRE 的位置
  • 对于 Tomcat 而言,我认为使用 JDK 或 JRE 中的 Java.exe 并不重要,因为它们看起来是一样的

资源:

https://docs.oracle.com/javase/9/install/installation-jdk-and-jre-microsoft-windows-platforms.htm#JSJIG-GUID-29333CFD-E7A6-498B-9317-97700C81D928

Which JRE does C:\ProgramData\Oracle\Java\javapath\java.exe use?

https://www3.ntu.edu.sg/home/ehchua/programming/howto/JDK_Howto.html

JDK java executable vs JRE executable

关于java - 你使用哪个Java?在 Server 2016 上安装 JDK 和 JRE (10.0.1);设置 JAVA_HOME 和路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50611412/

相关文章:

tomcat - 将嵌入式 tomcat 5 迁移到 tomcat 7

java - 使用 Tomcat 8 在 Hibernate 4.3.6 中“无法查找 JNDI 名称”

jsp - tomcat工作正常,但不知道哪里出了问题?

java - 将 request.getParameterMap() 转换为 bean

java - 为什么我的mockito代码调用真实代码?

java - 无法在远程分区中并行执行

java - BIRT Report using POJOs unning under tomcat

java - 如何从主类调用另一个 Activity 的方法

java - Android 从文本文件中获取图像路径

http - 获取荷兰语格式的页面内容