【问题标题】:Can't run Java 7 on Spring 2.5 App. Says it needs Java 1.5 or Later [closed]无法在 Spring 2.5 App 上运行 Java 7。说它需要 Java 1.5 或更高版本 [关闭]
【发布时间】:2021-10-03 15:05:44
【问题描述】:

我目前正在使用 VSCode ide 来处理带有 Maven 的 Spring 2.5 应用程序。由于是旧的 Spring 版本,我知道该应用程序将无法识别超过 7 的 Java 版本。我之前也发布过完全相同的问题,并被告知我的 Tomcat 版本与 8 之前的 Java 应用程序不兼容。

为了解决这个问题,我下载并安装了 Tomcat 8.5,并安装了 Java 7,根据我的研究,它们应该能够相互协作。然而,尽管发生了这种变化,我还是遇到了和以前一样的错误。

[Tomcat 8.5]:2021 年 7 月 27 日下午 2:18:55 org.apache.catalina.core.StandardWrapperValve 调用 严重:为 servlet [SiteAdmin] 分配异常 java.lang.IllegalStateException:上下文命名空间元素“annotation-config”及其解析器类 [org.springframework.context.annotation.AnnotationConfigBeanDefinitionParser] 仅适用于 JDK 1.5 及更高版本

我尝试过更改 pom.xml 文件中的 Java 编译源和目标,以及将 jdk 更改为 1.7,但问题仍然存在。

我应该提到我的计算机上也安装了 Java 11,因为它是运行 VSCode IDE 的要求。此外,尽管将系统路径变量设置为指向其他位置,但运行 Java -version 会导致调用版本 11。我不知道为什么会这样,但可能与问题有关。

对于这个问题的任何帮助将不胜感激。

【问题讨论】:

  • Spring 2.5 已全面启动compatible with Java 6。你试过那个版本吗? (请记住Tomcat compatible with that version of Java are archived
  • 您可能安装了更多版本的 java。
  • 您将不得不格外小心,并确保整个构建链是 java 7。我猜您使用的编译器正在生成与 1.7 兼容的字节码,但仍在尝试针对 jre 11 rt.jar 进行编译。在设置 JAVA_HOME 和 JRE_HOME 以及 PATH 环境变量以指向您的 JDK7 安装后,尝试使用 maven 命令行进行构建。然后,如果您遵循 @darnold0714 的建议以确保正确设置了 tomcat,那么您就有机会了。

标签: java spring maven visual-studio-code tomcat8


【解决方案1】:

如果您在 Windows 上运行 Tomcat,您可以在 $CATALINA_HOME/bin/setenv.bat 中设置 Tomcat 和 Java 变量。您可以在您可能拥有的任何 Java 安装中明确指出 JAVA_HOME 和 JRE_HOME。

当您运行 $CATALINA_HOME/bin/catalina.bat 时,它会知道首先运行 setenv.bat 并根据需要设置环境。

来源:https://tomcat.apache.org/tomcat-8.5-doc/RUNNING.txt

【讨论】:

  • Windows 上的Tomcat 通常不使用*.bat 脚本,而是作为服务运行。适当的jvm.dll 的路径可以在 Prunmgr(又名 Tomcat Monitor)中配置。
  • @PiotrP.Karwasz 我同意。对于某些产品质量,人们会将其作为服务运行。当我在 Windows 上运行 Tomcat 8.5 时,我使用了这个指南:tomcat.apache.org/tomcat-8.5-doc/windows-service-howto.html
【解决方案2】:

像 2.5 这样的旧 Spring 版本有 Java 版本检查。此检查曾经/不能正确检测到较新的 Java 版本 (>= 8),然后导致一些奇怪的异常,如您所述。

所以很可能您的 Tomcat 使用的不是 Java 7,而是 Java 11。

要检查这是否是问题所在,最简单的方法是将系统的默认 Java 安装更改为 Java 7(仅用于测试)。然后启动Tomcat,检查问题是否消失。

【讨论】:

    猜你喜欢
    • 2021-10-02
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多