【问题标题】:Which configuration file tells Tomcat about the location of installed JRE?哪个配置文件告诉 Tomcat 安装 JRE 的位置?
【发布时间】:2018-05-16 19:40:12
【问题描述】:

从现有线程(What tomcat requires JDK or JRE?Why does Tomcat require JDK installed?)中,我了解到 Tomcat 5.5 及更高版本不需要安装 JDK 来编译 jsp 文件,因为它使用自己捆绑的 Eclipse Java 编译器。但是,当tomcat 运行java 字节码时,它确实需要JRE。但是在安装Tomcat的时候,我们只需要指定JVM的位置。编译运行Java代码,我们只需要将JDK文件夹下的bin文件夹添加到path环境中即可。但是 JDK 9 不再包含 JRE 文件夹。相反,在 JDK 文件夹之外有一个独立的 JRE 文件夹。 Tomcat 在运行编译好的 jsp 代码时如何仍然捕获 JRE? Tomcat 中的哪个配置文件捕获了这一点?谢谢!

【问题讨论】:

    标签: java eclipse jsp tomcat


    【解决方案1】:

    但是在安装Tomcat的时候,我们只需要指定JVM的位置

    指定 JVM 的位置隐式指定了 JRE 的位置,因为 JVM 位于 JRE 目录结构内。

    要编译运行Java代码,我们只需要将JDK文件夹下的bin文件夹添加到path环境中即可。

    将 JDK bin 文件夹添加到 PATH 中,意味着您可以运行 javajavac 命令。命令文件的位置隐含地指定了 JDK 的位置,因此也指定了要使用的 JVM。没有配置文件。

    在 Windows 64 位 Java 5 到 Java 8 中,JVM 位于 %JAVA_HOME%\jre\bin\server\jvm.dll

    在 Windows 64 位 Java 9 中,JVM 位于 %JAVA_HOME%\bin\server\jvm.dll

    但是 JDK 9 不再包含 JRE 文件夹。而是在 JDK 文件夹之外有一个独立的 JRE 文件夹。

    所有 Java 版本的 JDK 安装程序都会创建一个 JDK 文件夹和一个 JRE 文件夹,除非您告诉它不要创建单独的 JRE 文件夹。在这方面,Java 9 与旧 Java 版本没有什么不同。

    Tomcat 在运行编译好的 jsp 代码时如何仍然捕获 JRE?

    Tomcat 本身是用 Java 编写的,因此 Tomcat 不定位 Java。运行 Tomcat 的是 Java。

    【讨论】:

    • 我在问Tomcat如何知道JRE的位置以便运行从.jsp编译的.class文件。我不是在问 Java 是如何运行 .class 的(我知道 javac 和 java 都涉及到 Java 的情况)。我们只告诉 Tomcat JVM 所在的位置,即 %JAVA_HOME%\bin\server\jvm.dll。但是在 Java 9 中,JRE 不在 JDK 文件夹内部,而是在 JDK 文件夹外部(即 %JAVA_HOME% 外部)。另外,请注意,对于 JDK 9,JDK 文件夹不包括 JRE 文件夹。例如C:\Program Files\Java\jdk-9.0.1和C:\Program Files\Java\jre-9.0.1,前者不包括后者。
    • 你读过我的回答吗? JVM 和所有 Java 运行时库都是 Java 9 JDK 的一部分。当然,它们不位于 JRE 子文件夹中,但 JRE 中的所有内容也在 JDK 中。 ---但是对于您的第一点,请再次阅读答案的最后一部分:Tomcat没有找到Java。 Tomcat 由 Java 运行,而 Java 已经知道自己在哪里。 Tomcat 的 Java 代码只是使用反射调用 JSP 编译的 Java 类。 Tomcat 不必定位 Java 来执行此操作,因为 Java 已经在运行它
    • 对不起,一开始我没有完全理解你的解释。我试图更好地理解它。所以过程是这样的:1).jsp转成.java,2).java编译成.class,这两个步骤都在Tomcat内部,3).class是JVM运行的,超出了Tomcat的范围,但完全用 Java 完成。你是这个意思吗?谢谢。
    猜你喜欢
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    相关资源
    最近更新 更多