java - 是否可以在编译文件时选择版本号? [英] java - is it possible to choose version number when compile a file?
问题描述
我写了一个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屋!