如何在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