从现有的主题(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文件夹添加到路径环境中即可。但是JDK 9不再包含JRE文件夹。相反,在JDK文件夹之外有一个独立的JRE文件夹。运行已编译的jsp代码时,Tomcat仍然如何捕获JRE? Tomcat中的哪个配置文件捕获了这个?谢谢!哪个配置文件告诉Tomcat已安装的JRE的位置?
1
A
回答
1
但安装Tomcat的过程中,我们只需要指定JVM的位置
指定JVM的位置隐含指定JRE的位置,因为JVM是JRE目录中找到结构体。
要编译并运行Java代码,我们只需要将JDK文件夹下的bin文件夹添加到路径环境中即可。
添加JDK bin
文件夹的路径,意味着你可以运行java
和javac
命令。命令文件的位置隐式指定了要使用的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文件夹。
除非您告诉它不要创建单独的JRE文件夹,否则所有Java版本的JDK安装程序都将创建一个JDK文件夹和一个JRE文件夹。在这方面,Java 9与旧版Java版本没有区别。
当运行编译后的jsp代码时,Tomcat仍然如何捕获JRE?
Tomcat本身是用Java编写的,所以Tomcat没有找到Java。运行Tomcat的是Java。
相关问题
- 1. 如何获取当前选择的已安装JRE的位置?
- 2. iOS获取已安装的配置配置文件
- 3. liberty配置文件的默认安装位置
- 4. 安装配置文件
- 5. Drupal安装配置文件
- 6. Slicehost安装配置文件
- 7. Xamarin没有安装配置文件匹配已安装的iOS签名身份
- 8. 配置文件的PhpMyAdmin安全警告
- 9. 获取已安装的配置文件的列表
- 10. Angular-cli的安装位置在哪里?
- 11. 定义安装文件的位置
- 12. 请告诉我配置时
- 13. 无法在iPad上安装配置文件 - “配置文件...无法安装”
- 14. XCode 3.2.3不会显示已安装的配置文件
- 15. Gem文件中的Gem安装配置
- 16. 是否可以告诉NSIS设置配置文件中列出的文件?
- 17. 以编程方式配置Eclipse安装的JRE
- 18. 将安全配置文件放置在WAR中的位置?
- 19. 我的webapp的日志文件在Linux Tomcat 7安装中的位置?
- 20. 文本文件后位置的tomcat deployement
- 21. 安装安装时的配置文件转换
- 22. 安装位置缺少头文件
- 23. Visual Studio安装项目 - 在两个位置的一个文件
- 24. 在Spring/Tomcat中,jndi查找引用哪个配置文件?:
- 25. 春天配置文件的正确位置在哪里?
- 26. Capistrano的配置文件的位置
- 27. 编写Drupal 7安装配置文件
- 28. 通过webkit安装iphone配置文件
- 29. 合并安装配置文件
我在问Tomcat如何知道JRE所在的位置,以便运行.class文件从.jsp编译。我不是问Java如何运行.class(我知道javac和java参与Java的情况)。我们只告诉Tomcat JVM所在的位置,即%JAVA_HOME%\ bin \ server \ jvm.dll。但在Java 9中,JRE不在JDK文件夹内(即在%JAVA_HOME%之外)。另请注意,对于JDK 9,JDK文件夹不包含JRE文件夹。例如,C:\ Program Files \ Java \ jdk-9.0.1和C:\ Program Files \ Java \ jre-9.0.1,前者不包括后者。 – Peng
你读过我的答案了吗? JVM和所有Java Runtime Library都是Java 9 JDK的一部分。当然,它们不在“JRE”子文件夹中,但JRE中的所有内容都位于JDK中。 ---但是,对于你的第一点,请再次阅读答案的最后部分:Tomcat没有找到Java。 ** Tomcat由Java **运行,并且Java已经知道它本身在哪里。Tomcat的Java代码只是使用反射调用JSP编译的Java类。 Tomcat不需要找到Java来做到这一点,因为** Java已经在运行它**。 – Andreas
对不起,我一开始并没有完全理解你的解释。我试图更好地理解它。所以这个过程是这样的:1).jsp被转换成.java,2).java被编译为.class,两个步骤都在Tomcat中,3).class由JVM运行,这超出了Tomcat ,但完全用Java完成。你是这个意思吗?谢谢。 – Peng