我在intellij中有一个模块,我可以在其中在java中创建完美运行的主要方法,但是当我在scala中创建它们并尝试运行它们时,我得到以下结果:
Error: Could not find or load main class xxx
我的项目依赖于 java 和 scala 类。我需要做什么才能允许 scala 主类运行?
编辑:
根据要求,这是我尝试使用 scala 运行的主类的摘录。我知道代码没有任何问题,因为当我将 intellij 中的代码初始化为 scala 项目时它可以工作。这里的问题是我从一个空白项目开始,所以我不知道 magic intellij 在幕后做了什么来使 scala 主类正常运行。
object WebProxyServer extends Logging {
def main(args: Array[String]): Unit = {
// implementation
}
}
class WebProxyServer() {
}
最佳答案
运行 Scala 代码的最简单方法是创建一个扩展 App
的对象
,如下所示:
object Main extends App {
println("Hello World")
}
Scala 将在创建对象时执行该对象中的所有代码。 (参数在 App
的 args
成员中可用)
要从 IntelliJ 运行此程序,请选择“运行 -> 编辑配置”,然后单击“+”并选择“应用程序”并填写对话框。 “Main Class”参数的下拉列表应包含扩展 App
的所有对象,因此请选择您要运行的类。完成此操作后,您的 Main
应出现在“运行”菜单上。
您可以拥有多个扩展 App
的类以及 Run
菜单中的多个项目。我用它来调试 IDE 中代码的特定部分,而无需运行主程序。
您还可以使用 main
方法创建一个对象,如下所示:
object Main {
def main(args: Array[String]): Unit = {
println("Hello World")
}
}
构建完成后,您可以将 Main
添加为 IntelliJ 中的“主类”,如上所述。所有具有 main
方法的对象也将出现在“主类”下拉列表中。
这两种方法都可以接受,但不要将两者结合起来。也就是说,不要继承 App
,然后重写 App
中的 main
方法。
关于java - Main 方法适用于 java,但不适用于 scala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54352667/