如何在jvm上运行已编译的scala代码?
当我尝试以下命令时:
java -cp scala-library.jar -cp bin com.mcmc5.Main
我收到以下错误:
Exception in thread "main" java.lang.NoSuchMethodError: main
在scala代码中,我有一个名为Main的对象,它具有在那里定义的main函数.如果我这样做
scala -cp bin com.mcmc5.Main
,它工作正常.
有什么东西我错过了吗?
谢谢你,thejinx0r
Edit1:
这是我的代码:我希望它在JVM上运行的原因是因为我想要实际执行字节码的服务器没有安装scala.这是我的主要基本上(它有一些在它之前定义的值和变量,但基本上:
,我仍然有同样的错误.
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()
}
}
编辑2 问题解决了.
所以我实际上不相信这一点,但这对我有用.
所以我找到了一个线程
(如果你可以调用它)并且说java通常不喜欢整体 java -cp scala-library.jar:bin com.mcmc5.Main
但是,这实际上解决了我的问题.通过使用 object Main extends Application 而不是定义一个名为main的函数来解决我的问题.我想这取决于你使用的scala版本.我目前正在使用scala 2.9,也许是rc2?还是rc1?
Ern*_*ill 11
在Windows上,
java -cp scala-library.jar;bin com.mcmc5.Main
Run Code Online (Sandbox Code Playgroud)
或其他地方
java -cp scala-library.jar:bin com.mcmc5.Main
Run Code Online (Sandbox Code Playgroud)
只需一个组合的"-cp"选项.鉴于编译com.mcmc5.Main,这绝对是正确的方法scalac.
| 归档时间: |
|
| 查看次数: |
3772 次 |
| 最近记录: |