我刚刚开始尝试将scala与IntelliJ一起使用。我按照以下说明创建了一个新项目:
我使用Homebrew安装了scala 2.12.6,并在IntelliJ中创建新的Scala项目时选择了它。
由于某种原因,在“外部库”下,我在scala安装中将每个jar都放置了两次:
我创建了一个hello世界,当我尝试运行它时,出现此错误:
IMapJet<String, String> map = jet.getMap("map");
for(int i = 0; i < 50; i++) {
map.put("test" + i, "test" + i);
}
DistributedStream.fromMap(map)
.map(entry -> {
System.out.println("word: " + entry.getKey());
return entry.getKey().toUpperCase();
})
.collect(DistributedCollectors.toIList("sink"))
.forEach(System.out::println);
但是,在Scala库文件夹中,每个文件夹只有一个jar。
我不确定我在做什么错。我尝试过其他版本的Scala,但是得到了相同的结果。我试图删除其中一个jar,并删除了它的实际唯一副本,所以我不得不重新安装scala。
答案 0 :(得分:1)
@Zapatilla,
关注此,
单击文件->项目结构;选择模块;选择依赖项
您应该在那里看到scala-sdk-2.12.6。首先选择它,然后单击下面的“-”符号将其删除。
完成后,单击“ +”按钮,然后选择“ 2. Library-> SDK中的Scala”;选择适当的版本,然后单击Apply; Ok。
这应该解决它。
答案 1 :(得分:1)
我刚发现问题。当我右键单击项目浏览器中的库时,我看到了每个jar文件的路径。在scala
进行的homebrew
的{{1}}安装中,似乎有两个包含相同jar的文件夹:
/usr/local/Cellar/scala/<version>
和
/usr/local/Cellar/scala/<version>/idea/lib
自从我在IntelliJ中导入此路径/usr/local/Cellar/scala/<version>/libexec/lib
以来,两个文件夹中的所有jar均已导入,从而导致重复。
解决方案是仅导入这两个选项之一。现在,我已经将/usr/local/Cellar/scala/<version>
设置为仅用作外部库IntelliJ
,它似乎可以正常工作!
答案 2 :(得分:0)
我正在使用Windows和intelliJ组合,因为我是scala的新手,所以我遇到了同样的问题,就像往常一样,我在google中搜索并花了很多时间来解决我的问题。
大多数建议是针对linux的,请尝试以下方法,以我为例。
1)检查您的iml文件并验证orderEntry。默认情况下,如果下载sbt,它将包含2组库。我下载了SBT版本1.2.7,默认情况下包含2组库。一个使用2.12.0,另一个使用2.12.7。
2)我的项目iml文件具有scala SDK 2.12.0,这是我遇到问题的原因,我对其进行了编辑,将其更改为2.12.7,它首先自动更改了2.12.7的顺序,并解决了我的问题。 这解决了我的问题。