多个scala库在intellij中导致错误?

时间:2015-04-07 10:49:38

标签: scala intellij-idea

我正在使用intellij 14和scala 2.11.6使用home brew和symlink使用

安装
ln -s /usr/local/Cellar/scala/2.11.6/libexec/src /usr/local/Cellar/scala/2.11.6/src
ln -s /usr/local/Cellar/scala/2.11.6/libexec/lib  /usr/local/Cellar/scala/2.11.6/lib
mkdir -p /usr/local/Cellar/scala/2.11.6/doc/scala-devel-docs
ln -s /usr/local/Cellar/scala/2.11.6/share/doc/scala /usr/local/Cellar/scala/2.11.6/doc/scala-devel-docs/api

我尝试过运行一个简单的hello世界,但遇到了以下问题。

Error:scalac: Multiple 'scala-library*.jar' files (scala-library.jar, scala-library.jar, scala-library.jar) in Scala compiler classpath in Scala SDK scala-sdk-2.11.6

编辑:

所以我检查全局库上的编译器类路径,显然有多个scal-library.jar

file:///usr/local/Cellar/scala/2.11.6/idea/lib/scala-library.jar
file:///usr/local/Cellar/scala/2.11.6/lib/scala-library.jar
file:///usr/local/Cellar/scala/2.11.6/libexec/lib/scala-library.jar

有谁知道为什么?

11 个答案:

答案 0 :(得分:52)

也许您已经使用过

/usr/local/Cellar/scala/2.11.6/

作为Scala SDK的路径?

使用自制软件安装scala时,该路径不仅包含scala库,还包含带有intellij相关库的符号链接。因此,如果您使用顶级安装目录,intellij将找到两次库。

相反,你应该使用

/usr/local/Cellar/scala/2.11.6/idea/lib

答案 1 :(得分:4)

这对我有用。 我正在使用Idea 2019.2.2和Windows 10。

在文件夹box[x, y].Color = Colors.Green中,我有两个文件:.idea/libraries/sbt__org_scala_lang_scala_library_2_13_0_jar.xml

我删除了第二个文件。 然后我打开第一个,并且有重复的行:

sbt__org_scala_lang_scala_library_2_13_0_jar2.xml

所以我删除了重复项,错误消失了。 希望这会帮助别人。

答案 2 :(得分:2)

2019更新...我正在使用sbt 2.13.1运行Ubuntu Linux和IntelliJ社区2019.1,并得到了完全相同的错误。我还发现,如果我是直接通过sbt使用“ runMain package.MyClass”构建的,那么它可以工作,所以我知道这一定是IntelliJ问题,而不是“实际”问题。

无论如何,我发现文件.idea / libraries / sbt ..很多疯狂的长名称... scala_library_2_13_1_jar.xml。

其中有一个XML块,并且在该块中,复制了两个条目: 我首先注意到了scala库,删除后,错误报告也出现在scala-compiler副本上。 删除两个重复项后,我的构建现在可以正常工作了。

答案 3 :(得分:1)

我也遇到了这个错误。我发现的修复是删除intellij生成的.iml文件中的重复scala库。

基本上我通过grepping scala版本找到了相关的.iml文件,并在该文件中找到了两个scala-library。我删除了scala 2.11版本,然后就可以了。

答案 4 :(得分:1)

我遇到了与你实验相同的问题,解决方案实际上非常简单,实际上是从项目中删除.idea文件夹,问题是该文件夹内的配置(包含例如测试的设置) ,VCS,运行等)被双重条目损坏(可能是你更新你的Scala版本),一旦你这样做并在Intellij中重新打开项目,IDEA将为你生成一个全新的配置。

答案 5 :(得分:1)

删除build.sbt中的以下行:

...

scalaVersion := "2.13.0"

...

尝试重建并再次运行

答案 6 :(得分:0)

您拥有多个scala-library.jar版本的JAR文件。为了使错误消失,您将不得不删除重复项。要确定要保留的版本,可以在每个JAR中查看清单文件:

META-INF/MANIFEST.MF

在清单文件中你应该看到如下内容:

Manifest-Version: 1.0
Class-Path:
Implementation-Title: Scala-Library
Implementation-Version: 2.11.4

错误正在发生,因为IntelliJ无法确定要使用的给定Scala类的哪个版本。

答案 7 :(得分:0)

在sbt中删除多个scala库版本,剩下一个。

答案 8 :(得分:0)

具有类似症状,但是在Ubuntu机器上,而不使用brew

我正在使用/usr/share/sbt/bin/sbt-launch.jar作为启动器。为了解决上述问题,我必须清除相关Scala项目的目录1)project,2)target和3).idea,并在IntelliJ({ {1}}-View-> Tool Windows,点击sbt图标),然后重建所有模块。

最后一步,当错误进一步发生时,切换到Ubuntu shell /终端,并在有问题的项目文件夹中执行Reimport all sbt projects。如果出现问题,请修复编译问题。如果这样做没有帮助,请在sbt clean compile中更改scalaVersion,例如从build.sbt2.12.9(使用2.12.8经常发生错误),删除2.12.9的定义(但保留scalaOrganization)。重复IntelliJ的organization。天哪。

答案 9 :(得分:0)

要解决此问题,请访问intellij中的项目结构并访问全局库 应该是这样的enter image description here

此后,通过点击-标记

删除所有scala SDK。

下一步,单击+,然后选择要添加的Scala SDK版本

enter image description here

此后,请确保应用更改并重新运行程序

答案 10 :(得分:-1)

这对我有用: 在IDEA

  

首选项->插件-> Scala->更新

重新启动IDEA