java - 是否可以在编译文件时选择版本号? [英] java - is it possible to choose version number when compile a file?

查看:254
本文介绍了java - 是否可以在编译文件时选择版本号?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I've wrote a java code and compiled it. (foo1.6.class) According to my search, my local machine has Java 1.6, and the tomcat server that I uploaded foo1.6.class only accepts version number 1.5 This means that I have to have Java 1.5 to compile?

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

I believe it is the cause that bad version number error is thrown like below.

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

My question is, is there any way I can compile my Java file using 1.5 version number? Looked at javac cmd but seems like it is not part of the option. But I don't think remove 1.6 and install Java 1.5 for this reason is not really good option neither. How do people deal with this kind of situation?

提前感谢!

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的源版本,有execptions)。

The Java compiler allows you to use a lower than it's current target version number only if you also use a source compatibility version that is not higher than the target (there are execptions for source versions below 1.4).

这篇关于java - 是否可以在编译文件时选择版本号?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆