Sti*_*itt 3 java eclipse osgi maven
在使用Java/Eclipse/Maven/OSGi时,我经常遇到这个警告:
The JRE container on the classpath is not a perfect match to the 'JavaSE-1.6' execution environment
我在Java 7 JDK上.大多数项目需要(我认为是正确的)比这更低的版本.例如,它们将需要JavaSE-1.6或JavaSE-1.5.所以在MANIFEST.MF这些项目中,这些项目将有一个看起来像这样的条目(从我的捆绑项目中取样):
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
这会给我上面提到的警告.现在,我知道两种可能的方法来"解决"这个警告:
JavaSE-1.7两种"解决方案"对我来说似乎都是荒谬的.我的项目不需要JavaSE-1.7.它在JavaSE-1.6上运行得非常好.要求捆绑包的所有用户至少拥有Java 7,只是因为开发人员使用的是Java 7并且不喜欢这个警告,这似乎与我想要的相反.另一方面,要求我作为开发人员安装所有Java版本,并将其列为我工作的项目所需的执行环境,这似乎几乎是荒谬的.所有这些项目在Java 7上运行得非常好,为什么我需要有很多这样的项目呢?
难道我完全失去了一些东西(在这种情况下,我没有 了 唯一的 一个),或者是这个警告非常愚蠢的,因为它是积极推动开发商为他们的项目设置了更高的要求执行环境,将严格要求?任何见解(并希望第三种摆脱这种警告的方式)将不胜感激.
有三种方法可以摆脱警告:
使用Java 6运行时替换项目的当前运行时环境
这是推荐的解决方案.警告试图说明的是指定Java 6的最低要求执行环境,但是在开发期间使用Java 7环境本身存在风险,因为您可以编写一些仅适用于Java 7的代码,直到您不会注意到这一点.您部署到Java 6环境并且它中断(感谢greg-449和Konstantin Komissarchik在评论中提到这一点).
第1步:添加新的Java 6 Runtime环境:
窗口 - >首选项 - > Java /安装的JRE - >按钮'添加...'

步骤2:选择新添加的JRE作为项目的运行时
Poject - > Properties - > Java Build Path

将MANIFEST条目更改为JavaSE-1.7
这个解决方案很简单.最大的缺点是,您将强制项目的所有用户将Java运行时升级到您使用的任何版本.因此,如果您想支持较旧的运行时也不是很好.
更改构建设置以忽略警告
只是让Eclipse停止抱怨.警告:小心使用.忽略警告可能会让您错过与旧VM的向后兼容性而不会注意到它.
窗口 - >首选项 - > Java /编译器/构建(如果适用,则为每个项目的等效页面):

| 归档时间: |
|
| 查看次数: |
3873 次 |
| 最近记录: |