我有一个包含多个Java项目的Eclipse工作区(在Maven中);这些彼此依赖。最近我开始改变一些项目以Java 1.7为目标,除了解决一些新警告之外,编译时没有什么不同。
然而,当我尝试运行一切时,感觉会出现问题。在以下情况下,如何加载类文件,是否存在任何问题?
答案 0 :(得分:6)
当你有java 1.6项目取决于Java 1.7项目或java 1.7项目取决于Java 1.6项目时,你应该总是在更高版本的JVM上运行你的程序,在这种情况下是java 1.7。简而言之,在大多数情况下,使用Java SE 6编译器构建的类文件将在Java SE 7中正确运行。但也有一些例外。有关Java 6和Java 7之间不兼容的列表,请参阅Incompatibilities between Java SE 7 and Java SE 6。
答案 1 :(得分:1)
您可以使用JDK 1.6构建一个项目,该项目具有一些用1.7
生成的库但如果项目1.7中的某些代码需要某些JDK 1.7功能(例如,它使用带有泛型的新Swing组合框),它将无法在1.6 JVM上运行。
所以这是非常谨慎的事情,因为你可能会遇到编译时遇到麻烦(至少不是沉默),但也会遇到运行时故障。如果你可以避免这种情况,那对你来说可能会更好。
答案 2 :(得分:0)
我也遇到了类似的问题,根据我的知识,我不认为1.6 VM可以运行任何1.7生成的字节码,但我认为反过来是可能的,因为1.7是1.6VM的升级版本。