我将应用程序服务器的JDK版本升级到1.6。 但是,我不明白为什么我们需要将JDK放在应用程序服务器上而不是JRE上?
由于不需要在应用程序服务器上重新编译代码。
JDK的升级会影响任何密钥库吗? 因为我将JAVA_HOME指向另一个新path。
感谢您的信息。
JDK或JRE的要求取决于特定的应用程序服务器本身。 (比如JBOSS,tomcat,glassfish等)及其编译为字节码的策略,以及在启动时如何决定依赖关系。
从严格意义上讲,如果你的java应用程序只是以类的forms执行Java字节码,那么你应该能够仅仅使用JRE。 但是,这是否正确取决于Java应用服务器策略,以便在启动时防御地检查已安装的JDK,或者在请求编译时的某个时刻抛出exception。
一些应用程序服务器使用javac将jsp编译为类文件,因此依赖于安装了系统JDK,这可以与tomcat (它捆绑自己的jsps编译器)形成对照,因此可以在JRE下运行 。
java密钥库是Java SE的一个特性,openJDK和Hotspot都引用一个$ JAVA_HOME / lib / security / java.security文件来select默认值。
除非你已经改变了$JAVA_HOME/lib/security/java.security ,否则默认的keystore.type = jks文件实现了$HOME/.keystore查找,因此它可以提供给你超出的位置,并且1.5和1.6版本sunJDK使用该格式和默认位置。
所以基本上改变$JAVA_HOME不会影响密钥库的位置
(除非你真的把密钥库的位置放在$ JAVA_HOME文件夹中)
但是如果你使用了一些非默认的提供程序,或者在java.security中设置了一些非默认的选项,这可能会影响你。