当前位置: 首页 > 知识库问答 >
问题:

如何在IntelliJ idea中运行Scala脚本?

太叔岳
2023-03-14

下面是一个简单的scala脚本:

object test {
  def hi() { print("hi there from here") }
}


test.hi()

在命令行中,它执行预期的操作:

scala /shared/scaladem/src/main/scala/test.scala
Loading /shared/scaladem/src/main/scala/test.scala...
defined module test
hi there from here
Welcome to Scala version 2.10.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_65).
Type in expressions to have them evaluated.
Type :help for more information.

scala>

但是在Intellij中,它会出现编译错误。右键单击Run Test.Scala

expected class or object definition
test.hi()
^
Exception in thread "main" java.lang.NoClassDefFoundError: scala/Either
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:190)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113)
Caused by: java.lang.ClassNotFoundException: scala.Either
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 3 more

另一个更新(在@lhuang的评论之后),我按照建议从头创建另一个项目。在这种情况下,Scala工作表工作正常(test.sc)。但是scala脚本(通过“scala test.scala”运行命令行时可以工作)仍然不能工作,即使在这个全新的“scala”项目中也是如此。

共有1个答案

袁骏祥
2023-03-14

这里的答案是项目的组合:

  • (a)创建一个全新的Scala项目(如@lhuang所建议的)和
  • (b)运行脚本时,需要进入运行配置并删除Make步骤(如“related”SOF问题中所述)。

这显示了Intellij及其scala插件的粗糙边缘。尤其是当我想要将scala与java集成时,此时使用Intellij显然是困难的(对于大多数试图集成scala的java项目来说,频繁创建新的scala项目是不可能的)。

 类似资料:
  • 问题内容: 我有一个普通的脚本,我想在Java中执行它。有人可以为我提供更多有关如何实现此目的的文档/示例吗? 问题答案: 基本的Java + Groovy集成: 请参阅本文以获取更多从Java调用Groovy的方法 PS: 您需要包括如在Java程序中,例如:

  • 问题内容: 我有一个脚本,可以创建网站并动态打印一些数据。-打印的数据应来自另一个python脚本。 我目前面临的问题是,如果我将执行python脚本的行放在执行应用程序的行之前,它将运行Python脚本而不运行;反之亦然。 Python脚本: Flask脚本(注意:价格应为其他脚本的“解析”变量): 问题答案: 使用: 将python脚本(例如)生成的内容包装到函数中。 将其放置在与或相同的目录

  • 问题内容: 我不知道应该把我的Spider代码放在哪里以及如何从main函数中调用它。请帮忙。这是示例代码: 问题答案: 所有其他答案均参考Scrapyv0.x。根据更新的文档,Scrapy 1.0要求:

  • 问题内容: 我是python的新手。只知道什么是python。我创建了以下代码(在python IDLE中): 然后,我将此页面保存在本地主机中为index.py 我使用http://localhost/index.py运行脚本 但是它没有显示执行的python脚本。而是将上面的代码显示为HTML。问题出在哪儿?请有人告诉我如何在网页中运行python吗? 问题答案: 为了显示您的代码,您需要执行

  • 在docker文件中运行sh脚本时,出现以下错误: /上传。上海:5:/上载sh:sudo:找不到/上载sh:21: /上载sh:换人不好 DockerFile 有什么想法吗?

  • 问题内容: 我有一个具有某些功能的脚本。 我可以直接从命令行运行功能之一吗? 像这样吗 问题答案: 如果脚本仅定义函数,而不执行其他任何操作,则可以先使用or 命令在当前shell的上下文中执行脚本,然后简单地调用函数。请参阅以获取更多信息。