-1

我是一个普通的 Scala 用户;我使用基于 Eclipse 的 Scala IDE,而且我从来不需要了解 maven 或 sbt。我想学习scalafx,但所有的指令都是针对maven的。在 Scala IDE 中,Scala 无法识别我的导入。有人可以告诉我如何让 IDE 识别 jar 文件吗?

我有

  • Scala IDE 4.2.0-vfinal-2015-09-25T11:10:29Z-Typesafe
  • scalafx_2.12.0-M3-8.0.60-R9.jar
  • JavaSE 1.8
  • Scala 库容器 2.11.7

我尝试将 scalafx jar 添加到我的 Java 构建路径(Project->Properties 没有 Scala 构建路径),但没有成功,所以我不知道还能尝试什么。

预先感谢!

// ----- 没有答案,评论太长,抱歉 -----

我很欣赏这样一个事实,如果我是一个认真的 Scala 开发人员,我应该学习 Maven 和 SBT。但我不是。

在过去的几年里,我教了一门“编程范式”课程。这学期我教过 Prolog、Clojure、Haskell、Elm,以及一点 Forth 和 REBOL。和过去一样,我以 Scala 结束,因为我认为它汇集了其他语言的许多想法,并且将成为 Java 的当之无愧的继承者。根据我的阅读,scalafx 看起来很容易使用,如果最后一个分配是使用 scalafx 的 GUI 分配,那就太好了。

对于任何编程语言,外部因素——IDE、make 等价物、测试框架、支持组等——至少与语言本身一样重要。考虑到课程中已经包含的材料数量,我明确不涵盖任何语言的任何这些外部因素。

由于安装 scalafx 显然不像将 jar 文件添加到 Eclipse(我的学生已经使用)那么简单,在我的情况下,学习 SBT 并花费额外的课堂时间来教授它根本不值得。

也许明年 scalafx——或者,我想,Scala IDE——会成熟到可以在我的课程中使用它的程度。

感谢大家澄清情况。

4

2 回答 2

1

这可能不是您想要的答案,但我建议您使用MavenSBT——最好是后者,因为它针对的是ScalaScala用户。这样做的原因很简单:两个系统都会以非常简单的方式自动管理您的依赖关系。

如果您决定手动管理依赖项,那么迟早您将走向痛苦的世界。例如,ScalaFX可能有自己的依赖项,您必须下载并安装在您的类路径上,并且它们可能有自己的依赖项等。

学习 SBT 可能是一个挑战,但做简单的项目也非常简单。例如,以下 SBT 文件(复制到build.sbt项目根目录中调用的文件)是ScalaFX应用程序的最低要求:

name := "myproject"

version := "0.1-SNAPSHOT"

scalaVersion := "2.11.7"

libraryDependencies += "org.scalafx" %% "scalafx" % "8.0.60-R9"

只需确保您使用的是最新版本的Java 8(如果您使用的是Java 7,则需要ScalaFX 2 )。

此外,您可能想尝试JetBrain的免费社区版IntelliJ IDEA以及Scala插件,作为Eclipse的替代品。IntelliJ确实非常好地支持ScalaSBT 。

更新:另外,我刚刚注意到您拥有ScalaFX的Scala 2.12 版本,但您使用的是Scala 2.11 编译器。不幸的是,每个版本的编译器都需要一份Scala库代码的匹配副本。这是使用SBT的另一个原因。:-)

于 2015-11-16T16:41:42.360 回答
0

我已经在命令行和 Eclipse 内部与学生一起使用 ScalaFX 大约一年了。我既不使用 sbt 也不使用 Maven 来为学生简化工作。我构建了一个 JAR 文件,与您拥有的非常相似,并且可以从命令行使用 -cp 或将其添加到 Eclipse 中的构建路径(作为外部 JAR)。这两种方法对我来说都很好。我创建并反对并让它扩展 scalafx.application.JFXApp。运行并弹出一个窗口。这将有助于更多地了解它是如何不起作用的。它是因为找不到 ScalaX 的元素而无法编译,还是在编译后没有运行?

我还要注意,在撰写此答案时,ScalaFX 尚不适用于处于 M4 阶段的 Scala 2.12。

于 2016-07-13T18:18:51.843 回答