【问题标题】:How does one import a scala package in java?如何在 java 中导入 scala 包?
【发布时间】:2014-12-17 15:54:16
【问题描述】:

我有一个 gradle 项目;我在 scala.com.EssencePVP.models 中有一些 scala 类,我想将它们导入到我的 java 代码中,它具有相同的包名称。

结构看起来像这样:

src/main/java/com/EssencePVP/

src/main/scala/com/EssencePVP/models/

当我尝试将我的 scala 包 (import com.EssencePVP.models.*) 导入 java 时,我收到以下错误消息:

EssencePVPMod/build/sources/java/com/EssencePVP/EssencePVP.java:56:错误:com.EssencePVP.models 包不存在

显然问题是试图查看 java 目录,而不是 scala 目录。我该如何解决这个问题?

谢谢。

【问题讨论】:

  • 请注意,导入与源文件所在的实际目录几乎没有任何关系——它们只是为了方便您不必编写完全限定名称(package. name.ClassName) 一直都是。您的问题不在于导入,而是在编译 Java 文件时在 javac 使用的类路径中添加由 scalac 编译的 .class 文件(来自 Scala 源文件)。您的项目是如何构建的?例如,您是否使用 SBT 或 Maven 之类的构建系统?
  • (忘记关于构建系统的问题——我应该读得更好。)

标签: java scala import


【解决方案1】:

根据Gradle Scala plugin documentation,似乎只允许src/main/scala 中的Java 代码与Scala 代码一起编译。您可以尝试为 Scala 插件设置 srcDirs = ["src/main/java", "src/main/scala"] 并相应地从 Java srcDirs 中删除 src/main/java

请注意,Maven 和 SBT 没有此限制。

【讨论】:

猜你喜欢
  • 2011-12-23
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-01
  • 2017-07-02
  • 2015-10-31
  • 2013-12-09
相关资源
最近更新 更多