java - 编译文件时是否可以选择版本号?

标签 java version-control compilation

我写了一个 java 代码并编译了它。 (foo1.6.class) 根据我的搜索,我的本地机器有 Java 1.6,而我上传的 foo1.6.class 的 tomcat 服务器只接受版本号 1.5 这意味着我必须有 Java 1.5 才能编译?

我相信这是引发错误版本号错误的原因,如下所示。

我的问题是,有什么方法可以使用 1.5 版本号编译我的 Java 文件吗? 查看了 javac cmd 但似乎它不是选项的一部分。但我不认为出于这个原因删除 1.6 并安装 Java 1.5 也不是很好的选择。人们如何处理这种情况?

提前致谢!

exception

javax.servlet.ServletException: Bad version number in .class file (unable to load class resume_builder.ResumeBuilder)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:273)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.lang.UnsupportedClassVersionError: Bad version number in .class file (unable to load class resume_builder.ResumeBuilder)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1884)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:889)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1353)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
    java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    java.lang.Class.getDeclaredConstructors0(Native Method)
    java.lang.Class.privateGetDeclaredConstructors(Class.java:2357)
    java.lang.Class.getConstructor0(Class.java:2671)
    java.lang.Class.newInstance0(Class.java:321)
    java.lang.Class.newInstance(Class.java:303)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:142)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

最佳答案

您可以使用javac -target 1.5 -source 1.5

Java 编译器允许您使用低于当前目标版本号的版本,前提是您还使用不高于目标的源兼容版本(低于 1.4 的源版本有异常(exception))。

关于java - 编译文件时是否可以选择版本号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3207537/

相关文章:

Java hibernate动态数据库选择

java - 如何从具有相同类别的对象的数组列表中提取元素?

java - jsp页面导入时出错

java - 如果少于 3 个条目,则用零填充列表

c++ - 在 C++、Windows 7 中包含 OpenGL 库

c++ - 无法通过 "DllMain already defined"错误获取

version-control - 出于历史目的注释掉代码的替代方法

version-control - Intellij IDEA 红色/棕色突出显示的文件名

git - 删除不应该提交的文件

c# - Blazor 编译器如何生成序列号?