Eclipse Scala IDE - 缺少X所需的类文件

时间:2012-01-27 12:17:19

标签: eclipse scala eclipse-plugin

Eclipse Scala插件有时会给我伪造编译错误,说“某些类所需的类文件丢失”。这可能与我的项目依赖于同一工作区中的其他项目有关。清理项目 - 甚至清除所有打开的项目 - 不能解决这些错误。我怎么能让它们消失呢?

4 个答案:

答案 0 :(得分:3)

这可能是由于在类路径中有两个不同版本的同一个jar(或者,我想,在类路径中只有一个旧的二进制不兼容的jar版本)。您可以使用像JBoss Tattletale这样的类路径检查工具来检测这样的问题。

以下是Tattletale命令行示例,用于分析所有jar位于lib子目录中的项目:

java -Xmx512m -jar $HOME/opened/tattletale-1.1.2.Final/tattletale.jar $HOME/$PROJECT/lib $HOME/opened/tattletale-1.1.2.Final/reports/$PROJECT

Tattletale将创建报告目录(最后一个参数)(如果它尚不存在)。还有Matle和Ant项目的Tattletale版本。

然后打开文件

tattletale-1.1.2.Final/reports/$PROJECT/index.html

在您的网络浏览器中,环顾四周,特别是在“消除不同版本的Jar文件”和“多个jar文件”等页面。如果没有找到该类型的问题,那些页面将为空。

答案 1 :(得分:1)

关闭所有打开的项目,然后打开出现这些错误的项目。这对我有用,但仅限于某些情况。我可能也需要事先清理过的项目。

答案 2 :(得分:1)

Scala编译器似乎规范化路径(或者它可能只是Play 1 Scala插件,我不确定)。因此,如果您在Linux或Mac OS X上创建了一个符号链接,从foo.jarfoo.jar.orig,Scala编译器会认为它不是.jar文件,因为它会看看规范的道路。所以这样的任何jar都会从你的类路径中默默地删除。

答案 3 :(得分:1)

你可能在类路径中没有一些必需的符号,或者,(!),你可能在类路径中有多个版本的jar,这是我的情况。

在将salat和casbah安装到项目中后,我在IntelliJ中进行完全重建时遇到了类似的问题。 SBT构建没问题,但想法开始失败。

我已经下了casbah,因为它是由salat传递进口的,问题就消失了。

希望帮助那里的人。