我必须将我的Web应用程序从Java 6迁移到Java 8.我已经进行了一些代码更改并使用Java进行编译。它很成功,我的manifest.mf包含: - 清单 - 版本:1.0 Ant-Version:Apache Ant 1.9.6 创建者:1.8.0_171-b11(Oracle Corporation)
但是当在linux虚拟盒(jre 1.6,tomcat 7.0.29)上运行已编译的war时,它不会抛出主要的次要不支持异常。
这是正常的吗?
答案 0 :(得分:0)
如果您有明确的" -source 1.6"和" -target 1.6"传递给javac
的参数并且您不使用任何需要新字节码版本的Java8功能,然后仍然可以在JVM 6上启动已编译的代码。
$ cat Empty.java
class Empty {};
$ javac Empty.java
$ file Empty.class
Empty.class: compiled Java class data, version 52.0 (Java 1.8)
$ javac -target 1.6 -source 1.6 Empty.java
warning: [options] bootstrap class path not set in conjunction with -source 1.6
1 warning
$ file Empty.class
Empty.class: compiled Java class data, version 50.0 (Java 1.6)
检查你的/ maven文件是否不设置这些参数。