scala可以使用java文件中定义的类(或其他东西)吗?是否必须首先将这些java文件制作成jar包然后从scala中使用?
答案 0 :(得分:2)
如果您使用SBT,则使用Scala中的Java是相当无缝的。
我最小的示例项目显示Scala和Java的自由混合可能看起来像:
build.sbt
src/
Hey.java
There.scala
~~ build.sbt
~~
javaSource in Compile <<= baseDirectory(_ / "src")
scalaSource in Compile <<= baseDirectory(_ / "src")
~~ src/Hey.java
~~
public class Hey {
public static String yay = "Yay!!";
}
〜src/There.scala
~~
object There extends App {
println(Hey.yay)
}
然后通过IDE或
运行There
$ sbt 'run-main There'
同样,如果您要在Scala项目中使用Java库,则可以将其用作Maven依赖项,而不考虑它是Scala还是Java:
~~ build.sbt
~~
libraryDependencies ++= Seq(
"com.neuronrobotics" % "nrjavaserial" % "3.7.5.1", // Java library
"org.scala-lang.modules" % "scala-xml_2.11" % "1.0.3" // Scala library
)
如果您使用Maven作为构建系统,使用库就像在SBT中一样简单。使用Maven混合使用Scala和Java源代码有点棘手,并且需要在编译之前使用Maven生命周期阶段。
答案 1 :(得分:0)