在java 7上使用OkHttpClient v3.12.x时,无法解析java.time.Duration类型

在java 7上使用OkHttpClient v3.12.x时,无法解析java.time.Duration类型,java,eclipse,java-7,okhttp,java-time,Java,Eclipse,Java 7,Okhttp,Java Time,我正在为一个为Java7编译的项目进行开发 在这个项目中,我使用OkHttpClient v3.12.13,它与Java7兼容(如上所述)。但是,这些行在Eclipse编辑器中产生错误: private static final OkHttpClient GLOBAL\u OK\u HTTP\u CLIENT=new OkHttpClient.Builder() .readTimeout(10,时间单位为秒) .build(); 错误是: 无法解析java.time.Duration类型。它是

我正在为一个为Java7编译的项目进行开发

在这个项目中,我使用OkHttpClient v3.12.13,它与Java7兼容(如上所述)。但是,这些行在Eclipse编辑器中产生错误:

private static final OkHttpClient GLOBAL\u OK\u HTTP\u CLIENT=new OkHttpClient.Builder()
.readTimeout(10,时间单位为秒)
.build();
错误是:

无法解析java.time.Duration类型。它是从必需的.class文件间接引用的
此错误仅由编辑器显示。事实上,当我使用CLI(Eclipse外部)编译我的项目时,我没有因为对
java.time
包的隐式引用而得到任何错误

我知道Java7中没有
Java.time
包。事实上,我没有在代码中使用它,它只是被OkHttp库隐式引用(如错误消息所示)

有没有办法在Eclipse上修复此错误

以下是我在Eclipse上配置编译器遵从性的方式:

请注意,我无法升级到较新的Java版本。

Java.time类内置于Java 8及更高版本中。您正在将应用程序部署到Java 7。该版本的Java缺少调用库的代码调用的
Java.time.Duration

您声称该库支持Java7。如果这是真的,库必须有一个开关,以避免使用Java 7中不可用的类

您未正确配置IDE,以允许在比您部署的版本更高的版本中编程。这是一个你应该解决的问题。如果部署在Java7上,则编译为Java7。见问题

当然,最好的解决方案是迁移到Java的现代版本。我强烈建议使用长期支持(LTS)版本。目前是Java8和Java11

如果是您自己使用java.time类的代码,我建议将ThreeTen Backport库添加到您的项目中。该库为java 6和java 7提供了几乎相同的API,提供了大部分java.time功能。但是我猜这不会满足您所讨论的库的要求,尽管您可能需要验证。

java.time类是内置到java 8和更高版本中的。您正在将应用程序部署到Java 7。该版本的Java缺少调用库的代码调用的
Java.time.Duration

您声称该库支持Java7。如果这是真的,库必须有一个开关,以避免使用Java 7中不可用的类

您未正确配置IDE,以允许在比您部署的版本更高的版本中编程。这是一个你应该解决的问题。如果部署在Java7上,则编译为Java7。见问题

当然,最好的解决方案是迁移到Java的现代版本。我强烈建议使用长期支持(LTS)版本。目前是Java8和Java11


如果是您自己使用java.time类的代码,我建议将ThreeTen Backport库添加到您的项目中。该库为java 6和java 7提供了几乎相同的API,提供了大部分java.time功能。但是我猜这不会满足您所讨论的库的要求,尽管您可能需要验证。

java.time API仅在JAVA8+@Jens中可用,实际上我不使用该软件包。它只被OkHttpClient隐式引用,所以Eclipse显示了一个错误。有没有办法防止这种错误?使用引用java.time API的旧版本库,或者更好的解决方案是使用实际版本的java。Java7已经过时,因为years@Jens1.这是Eclipse的问题,不是库的问题,因为当我编译我的项目时,编译器不会抛出任何错误,即使库隐式引用了
java.time
package。2.我无法升级到较新的Java版本。如果您现在仍使用Java 7,请使用。Java.time API仅在JAVA8+@Jens中可用,实际上我不使用该软件包。它只被OkHttpClient隐式引用,所以Eclipse显示了一个错误。有没有办法防止这种错误?使用引用java.time API的旧版本库,或者更好的解决方案是使用实际版本的java。Java7已经过时,因为years@Jens1.这是Eclipse的问题,不是库的问题,因为当我编译我的项目时,编译器不会抛出任何错误,即使库隐式引用了
java.time
package。2.我无法升级到较新的Java版本。如果您现在仍使用Java 7,请使用。谢谢您的回答。我已经按照您的建议检查了编译器遵从性设置,但是它们很好(代码是为Java1.7编译的)。我还尝试在我的项目中导入ThreeTen Backport的JAR,但错误仍然存在。所以我想我应该切换到另一个HTTP客户机,它没有Java 7的这些问题…谢谢你的回答。我已经按照您的建议检查了编译器遵从性设置,但是它们很好(代码是为Java1.7编译的)。我还尝试在我的项目中导入ThreeTen Backport的JAR,但错误仍然存在。所以我想我应该切换到另一个HTTP客户端,它对于Java 7没有这些问题。。。