姬長信(Redy)

java – 关于运行时不能与’RequiredExecutionE…


在使用Java / Eclipse / Maven / OSGi时,我经常遇到这个警告:

类路径上的JRE容器与“JavaSE-1.6”执行环境不完全匹配

我在Java 7 JDK上.大多数项目需要(我认为是正确的)比这更低的版本.例如,它们将需要JavaSE-1.6或JavaSE-1.5.所以在他们的MANIFEST.MF中,这些项目将有一个看起来像这样的条目(从我的捆绑项目中取样):

Bundle-RequiredExecutionEnvironment:JavaSE-1.6

这会给我上面提到的警告.现在,我知道两种可能的方法来“解决”这个警告:

>使用Java 6运行时替换项目的当前运行时环境
>将MANIFEST条目更改为JavaSE-1.7

两种“解决方案”对我来说似乎都是荒谬的.我的项目不需要JavaSE-1.7.它在JavaSE-1.6上运行得非常好.要求捆绑包的所有用户至少拥有Java 7,只是因为开发人员使用的是Java 7并且不喜欢这个警告,这似乎与我想要的相反.另一方面,要求我作为开发人员安装所有Java版本,并将其列为我工作的项目所需的执行环境,这似乎几乎是荒谬的.所有这些项目在Java 7上运行得非常好,所以为什么我需要有很多项目呢?

我完全错过了什么(在这种情况下我是not the only one),或者这个警告真的很愚蠢,因为它正在积极地促使开发人员为他们的项目设置一个更高的必需执行环境,因为这是严格需要的?任何见解(并希望第三种摆脱这种警告的方式)将不胜感激.