如何从java程序的main方法调用Scala程序的main方法?
假设我在一个Java项目中有一个Scala类和一个Java类,Scala类如下所示如何从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
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特性,所以我猜可能也有问题。也许用更详细的描述打开一个新问题?