[英]SBT project with a Java module in IntelliJ
我正在学习IntelliJ中的开发项目。
我开始了一个新的SBT项目。 现在我有两个文件,一个是Scala脚本projectName/src/main/scala/scalaScript.scala
,另一个是Java类projectName/src/main/java/moduleName/MyClass.java
我使用Scala脚本在Scala控制台中逐行测试代码。 为了测试我在MyClass.java
定义的类,我想我需要先对其进行编译,然后在Scala脚本中import moduleName.MyClass
。 之后,我可以使用java类创建对象并执行我想要的任何操作。
如果不使用IntelliJ,则只需转到Java模块目录并调用javac -cf myJavaLibrary.jar MyClass.java
即可创建一个jar。 然后将myJavaLibrary.jar
移到与Scala脚本文件相同的目录中。
如何在IntelliJ中有效地做到这一点? 什么是工作管道?
更新1
我切换到使用Scala工作表。 但是,在import moduleName.MyClass
,会出现一条错误消息,指出未找到该模块。
import bestbuy.Laptop
其中bestbuy
是模块名称,而Laptop
是一个类。 然后消息说:
Error:not found: value bestbuy
import bestbuy.Laptop
^
Error:(6, 10) not found: value bestbuy
;import bestbuy.Laptop
^
Error:(18, 50) not found: value bestbuy
println(MacroPrinter211.printImportInfo({import bestbuy.Laptop;}))
^
Error:(26, 50) not found: value bestbuy
println(MacroPrinter211.printImportInfo({import bestbuy.Laptop;}))
^
更新2
在工作表中,应该选中“ Make project”前面的小框,以便所有源代码都将被编译,字节码将保存在SBT期望的目标目录中。 然后,我可以在工作表中成功import bestbuy.Laptop
。
但是,我仍然期待我最初的问题的答案。 如果我可以在Scala脚本文件而不是工作表中import bestbuy.Laptop
。 在工作表中,所有代码都一次执行,而我想一次执行一行。
编译项目后,我尝试在Scala控制台中执行import bestbuy.Laptop
,但出现错误:
scala> import bestbuy.Laptop
<console>:13: error: not found: value bestbuy
import bestbuy.Laptop
^
似乎控制台的类路径配置不正确。 如何配置控制台的类路径?
要在IntelliJ中使用类似repl的环境,只需创建新的scala工作表文件,然后在其中可以导入Java类并使用它。 IDE将为您编译所有内容。
您还可以使用终端,在sbt console
键入内容, sbt console
将您的repl与项目类放在classpath中,以便可以导入和使用它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.