Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从java程序的main方法调用Scala程序的main方法?_Java_Scala - Fatal编程技术网

如何从java程序的main方法调用Scala程序的main方法?

如何从java程序的main方法调用Scala程序的main方法?,java,scala,Java,Scala,假设我在一个Java项目中有一个Scala类和一个Java类,Scala类如下所示 class Sam { def main(args: Array[String]): Unit = { println("Hello") } } 我如何从同一项目中的java程序的主方法调用它的主方法通常,java中的主方法是静态的,Scala中的对象。这允许您从命令行运行它们。您的代码定义的是类,而不是对象 我建议将您的Scala代码更改为: object Sam { def main

假设我在一个Java项目中有一个Scala类和一个Java类,Scala类如下所示

class Sam {

  def main(args: Array[String]): Unit = {
    println("Hello")
  }

}

我如何从同一项目中的java程序的主方法调用它的主方法通常,java中的主方法是
静态的
,Scala中的
对象
。这允许您从命令行运行它们。您的代码定义的是
,而不是
对象

我建议将您的Scala代码更改为:

object Sam {
  def main(args: Array[String]): Unit = {
    println("Hello")
  }
}
然后,您可以从Java main方法调用它,如下所示:

class Foo  {
    public static void main(String[] args) {
        Sam.main(args);
    }
}

new Sam().main(javaArgs)
是否在Java的主程序中工作?它正在工作。非常感谢:考虑扩展<代码> app <代码>特性。是的,考虑应用程序。但不要考虑应用程序,这是不推荐的。实际上,也不要考虑<代码> app >代码>。在
App
摆脱
DelayedInit
行为之前,您会想知道为什么字段没有初始化。我将项目提取到一个jar文件中,并尝试从命令行调用Foo类。但是,它不起作用!这可能不起作用有几个原因。例如,如果类路径设置不正确(您可能会看到ClassNotFoundException);或者如果命令行上指定的类名不正确(“无法找到或加载主类”)。我假设“将项目提取到一个jar中”指的是一个IDE特性,所以我猜可能也有问题。也许用更详细的描述打开一个新问题?