**环境:**Play 2.3.0/Scala 2.11.1/IntelliJ 13.1
我使用Typesafe Activator 1.2.1创建了一个Scala 2.11.1的新项目。项目创建后,我运行了gen-idea。生成的IDEA项目无法编译,并出现错误:Error: scala: No 'scala-library*.jar' in Scala compiler library in test我做错什么了吗?变通办法?
gen-idea
Error: scala: No 'scala-library*.jar' in Scala compiler library in test
3vpjnl9f1#
1.打开File -> Project Structures -> Libraries,删除其中的任何scala sdk,例如scala-sdk-2.11.8在下图中。
1.单击+,然后单击Scala SDK。
1.从列表中选择合适的Scala SDK,对我来说,它是Ivy-Scala-2.11.8,如图所示。
1.选择当前项目(我的项目是spark-test),单击OK。
spark-test
1.然后单击“确定”将其关闭。
1.再运行一次,现在应该可以了。
lstz6jyr2#
从IDEA 13开始,你应该使用Scala插件捆绑的SBT支持。有了它,就不需要添加第三方SBT插件和运行特殊命令;只需使用“文件->导入项目...”菜单项导入项目,它将自动加载SBT项目结构及其依赖项。
qkf9rpyu3#
我在Play2.3中使用./Activator idea生成的.idea文件也遇到了同样的问题。一个快速的解决方法是查看“项目结构->模块”并注意编译器库的名称。对我来说,这是“SBT:scala2.11.1”。在“项目结构->库”中查找并检查此库的内容。它应该包含scala-compiler.jar、scala-library.jar和scala-reflect.jar。如果这些库不存在,添加它们(在我的例子中,它们位于~/.sbt/ Boot /scala-2.11.1/lib)。
qco9c6ql4#
对于IDEA 15和从Activator 1.3.5导出的项目,目前只有Russell的解决方案有帮助。我已经修复了scala编译器库,在编译器库的类路径和类中添加了3个位于~/.sbt/ Boot /scala-2.11.1/lib的库。索引项目后,我把这个库移到IDEA的全局库中,并保存在那里。
myzjeezk5#
我也有同样的问题。如果你使用外部的sbt构建你的项目,比如sbt compile,那么它会在库中创建或添加依赖项(所有的外部依赖项也是如此),scala sdk会根据你的scala版本添加为SBT:scala*。因此,您可以删除以SBT为前缀的SDK,并通过Intellij添加适当的SDK。
sbt
sbt compile
SBT:scala*
SDK
File->Project Structure->Libraries
删除SBT SDK并手动添加。
vmpqdwk36#
对于我的IDEA 12,我在Settings.Compiler中取消选中“使用外部构建”框时解决了这个问题。
fafcakar7#
现在是2021年,在Mac中,使用IntelliJ运行scala:
Mac
brew install scala
IntelliJ
java JDK
Scala SDK
4dbbbstv8#
我绝对是Scala初学者。我想站起来跑。我需要创建一个Scala * 项目 *,而不是一个带有Scala库的Java项目:
4nkexdtk9#
看起来我的答案晚了9年,但当我面对这样的问题时,以前的答案对我不起作用,所以我将在这里留下我的解决方案。文件>项目结构>全局库>在我的例子中是scala-sdk-2.13.8 >按减号(删除库)>按加号>选择对应于你的scala版本的SDK(例如:scala-sdk-2.12.10在我的例子中\在pom.xml文件中找到你的版本)> OK > Applay\OK
9条答案
按热度按时间3vpjnl9f1#
1.打开File -> Project Structures -> Libraries,删除其中的任何scala sdk,例如scala-sdk-2.11.8在下图中。
1.单击+,然后单击Scala SDK。
1.从列表中选择合适的Scala SDK,对我来说,它是Ivy-Scala-2.11.8,如图所示。
1.选择当前项目(我的项目是
spark-test
),单击OK。1.然后单击“确定”将其关闭。
1.再运行一次,现在应该可以了。
lstz6jyr2#
从IDEA 13开始,你应该使用Scala插件捆绑的SBT支持。
有了它,就不需要添加第三方SBT插件和运行特殊命令;只需使用“文件->导入项目...”菜单项导入项目,它将自动加载SBT项目结构及其依赖项。
qkf9rpyu3#
我在Play2.3中使用./Activator idea生成的.idea文件也遇到了同样的问题。一个快速的解决方法是查看“项目结构->模块”并注意编译器库的名称。对我来说,这是“SBT:scala2.11.1”。在“项目结构->库”中查找并检查此库的内容。它应该包含scala-compiler.jar、scala-library.jar和scala-reflect.jar。如果这些库不存在,添加它们(在我的例子中,它们位于~/.sbt/ Boot /scala-2.11.1/lib)。
qco9c6ql4#
对于IDEA 15和从Activator 1.3.5导出的项目,目前只有Russell的解决方案有帮助。我已经修复了scala编译器库,在编译器库的类路径和类中添加了3个位于~/.sbt/ Boot /scala-2.11.1/lib的库。索引项目后,我把这个库移到IDEA的全局库中,并保存在那里。
myzjeezk5#
我也有同样的问题。
如果你使用外部的
sbt
构建你的项目,比如sbt compile
,那么它会在库中创建或添加依赖项(所有的外部依赖项也是如此),scala sdk会根据你的scala版本添加为SBT:scala*
。因此,您可以删除以SBT为前缀的SDK
,并通过Intellij添加适当的SDK。删除SBT SDK并手动添加。
vmpqdwk36#
对于我的IDEA 12,我在Settings.Compiler中取消选中“使用外部构建”框时解决了这个问题。
fafcakar7#
现在是2021年,在Mac中,使用IntelliJ运行scala:
Mac
:brew install scala
IntelliJ
:打开 *.scala文件,然后根据自动配置java JDK
和Scala SDK
的通知4dbbbstv8#
我绝对是Scala初学者。我想站起来跑。我需要创建一个Scala * 项目 *,而不是一个带有Scala库的Java项目:
4nkexdtk9#
看起来我的答案晚了9年,但当我面对这样的问题时,以前的答案对我不起作用,所以我将在这里留下我的解决方案。
文件>项目结构>全局库>在我的例子中是scala-sdk-2.13.8 >按减号(删除库)>按加号>选择对应于你的scala版本的SDK(例如:scala-sdk-2.12.10在我的例子中\在pom.xml文件中找到你的版本)> OK > Applay\OK