我正在使用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
有谁知道为什么?
答案 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.sbt
到2.12.9
(使用2.12.8
经常发生错误),删除2.12.9
的定义(但保留scalaOrganization
)。重复IntelliJ的organization
。天哪。
答案 9 :(得分:0)
要解决此问题,请访问intellij中的项目结构并访问全局库 应该是这样的
此后,通过点击-标记
删除所有scala SDK。下一步,单击+,然后选择要添加的Scala SDK版本
此后,请确保应用更改并重新运行程序
答案 10 :(得分:-1)
这对我有用: 在IDEA
首选项->插件-> Scala->更新
重新启动IDEA