如何在jvm上运行编译后的scala代码?如何在jvm上运行scala字节码?
当我尝试使用以下命令:
java -cp scala-library.jar -cp bin com.mcmc5.Main
我收到以下错误: Exception in thread "main" java.lang.NoSuchMethodError: main
在Scala代码,我有一个叫做主要对象并将其定义的主要功能在那里。它工作,如果我做 scala -cp bin com.mcmc5.Main
,它工作正常。
有什么,我失踪?
谢谢 thejinx0r
EDIT1: 这里是我的代码: 为什么我希望它运行在JVM上的原因是因为我想要去实际执行的字节码没有阶服务器安装。这是我的主要有本质(它有一定的价值和之前定义的变量,但本质:
package com.mcmc5
import java.text.{DateFormat, NumberFormat, DecimalFormat, SimpleDateFormat}
import java.util.{Date}
object Main { def main(args: Array[String]) = {
println(numberOfOutputStructures)
var structureSolver = new MC(20);
structureSolver.start()
}
}
但我仍然使用 java -cp scala-library.jar:bin com.mcmc5.Main
试过,我仍然得到了同样的错误
编辑2 问题解决了。
所以我其实不相信这一点,但是这对我的作品。
于是我找到了一个thread (如果你可以称之为),并说java通常不喜欢整个object Main extends Application
但是,这实际上解决了我的问题。通过使用extends Application
而不是定义一个名为main的函数来解决我的问题。我想这取决于你正在使用的scala版本。我目前在scala 2.9上,也许是rc2?或rc1?
很高兴看到你的代码来帮助你 – axaluss 2011-04-27 01:54:51
正如欧内斯特所说:只有最后的-cp选项将被使用。不要指定两个! – ziggystar 2011-04-27 06:45:50
使用命令行'scala -cp bin com.mcmc5.Main',您已经在JVM上运行您的Scala代码。你为什么要用'java'命令明确地做到这一点? – Jesper 2011-04-27 13:33:49