导入Guava源时无法解析导入javax.inject

时间:2013-09-04 14:14:38

标签: eclipse import guava java

我想使用Guava's TypeToken,然后我从here下载了Guava Release 14.0。 (我假设14.0比15.0 rc更稳定。)

guava-14.0.1-sources.jar (Source) 
http://search.maven.org/remotecontent?filepath=com/google/guava/guava/14.0.1/guava-14.0.1-sources.jar

将下载的guava-14.0.1-sources.jar解压缩到一个文件夹中。

然后我在Eclipse中创建了一个Java 1.7项目。

通过Java Build Path -> Source -> Link Source...链接Eclipse中的源代码。

注意我使用(并且不知道如何使用)任何构建系统,如Maven。

首先我遇到The import javax.annotation.Nullable cannot be resolved的问题。 但这已经解决了。我跟随线程herejsr305-2.0.1.jar下载this page。 (我假设2.0.1是最新版本。)

其次,我遇到了像this one这样的rt.jar access restriction问题。 这也解决了,只需重新添加JRE系统库,就像那里的答案一样。

现在我遇到了这个我无法解决的问题,并且没有来自网络的解决方案。

在包com.google.common.util.concurrentServiceManager中,存在一些编译错误。

import javax.inject.Inject;         // The import javax.inject cannot be resolved
import javax.inject.Singleton;      // The import javax.inject cannot be resolved

据我了解,这是“第一个问题”的类似问题。但jsr305-2.0.1.jar包含javax.annotation.Nullable,但不包括javax.inject.*。我需要的是一个包含javax.inject.*

的Java库 你可以帮忙吗?非常感谢!

2 个答案:

答案 0 :(得分:12)

Java EE中提供了javax.inject包。如果由于某种原因需要在Java SE中使用它,则可以显式包含一个包含API interface的jar。 Maven Central有一个指向实施的链接(javax.inject:javax.inject)。实际上使用Maven可以简化生活,但您只需下载jar文件并手动包含它。

答案 1 :(得分:2)

您可以获得javax.inject jar here。您不需要使用maven,只需下载.jar