首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以从java 6编译代码调用java 7编译java代码。

可以从java 6编译代码调用java 7编译java代码。
EN

Stack Overflow用户
提问于 2015-11-22 11:52:43
回答 2查看 484关注 0票数 0

我有在java 6上编译的程序,以及在java 7上编译的库。我可以从java 6编译代码调用java 7编译代码,否则就会有运行时错误。我知道我在编译时会有错误,但是我会在编译后更改jar。我在jvm 7上运行我的应用程序。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-22 12:06:59

一般来说,Java 7是向后兼容的,所以您可以使用用Java 6编译的库。

例如:如果用Java 6编译的库使用javax包,那么它将使用以Java 7开头的库,并使用Java 7进行编译。

我用Java7使用ApacheCXF2.4.6(用Java 5编译),Apache调用JBoss 7的Servlet (用Java6编译)。

票数 2
EN

Stack Overflow用户

发布于 2015-11-22 12:50:52

是的,您可以,但是类文件格式存在问题;有关Java和classfile格式版本的精确映射,请参阅this question

具体来说,如果您有用JDK 6编译的源代码A,但是编译路径中有具有主要版本51的.class文件的JAR,那么编译将失败,因为编译器将无法加载类文件。

但是,在编译时,您可以指定一个“- target 1.6”标志,以便生成的类文件与Java 6兼容。如果您能够访问库的源代码,可以使用该目标重新编译它,以便它与1.6编译器兼容。

最后(很明显),JVM必须理解类文件格式的版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33854444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档