【问题标题】:Compile Equinox 3.8.2 Project with java 7使用 java 7 编译 Equinox 3.8.2 项目
【发布时间】:2015-11-30 15:13:12
【问题描述】:

我需要使用 Equinox 3.8.2 为多个 OSGi 项目创建一个 gradle 构建系统。我们使用 Java 7。

但是现在我的 Gradle 脚本在使用 ServiceTracker 编译项目时失败了:

Activator.java:11: error: type ServiceTracker does not take parameters
private static ServiceTracker<org.osgi.service.log.LogService, Object> logTracker = null;

我已经找到了this 的博文。

但不知何故,当使用相同的 osgi 3.8.2 库手动构建项目时,eclipse 成功了。

【问题讨论】:

    标签: java eclipse gradle osgi equinox


    【解决方案1】:

    Eclipse 使用 Eclipse Compiler for Java (ECJ) 进行编译。与 javac 7 不同,它很高兴使用 OSGi 4.3.0 jar 中 -target jsr14 类文件中的通用签名信息。 javac 7 明确选择忽略 -target jsr14 类文件中的通用信息,这就是您收到该错误的原因。如果要使用 javac 7 编译,则需要使用已编译的 OSGi 4.3.1 库-target 1.5

    【讨论】:

      猜你喜欢
      • 2021-04-23
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      • 1970-01-01
      • 2013-01-20
      • 2015-06-02
      • 2014-03-18
      • 1970-01-01
      相关资源
      最近更新 更多