我收到此错误:
错误:类 oracle.Execution$ 中的 Main 方法不是静态的,请将 main 方法定义为: 公共静态无效主(字符串[] args)
当我运行命令时:
java -jar MyProgram.jar oracle.Execution
但我不明白为什么会发生这种情况。这是我的代码(非常简单)
package oracle
import publish.PublishFile
object Execution {
def main(args: Array[String]): Unit = {
val reader = OracleReader()
val SEPARATOR = System.getProperty("file.separator")
val END_PATH = s"${System.getProperty("user.dir")}${SEPARATOR}testingDumpResults"
PublishFile().publishThroughFile(END_PATH, reader)
}
}
我也尝试过,但出现了同样的错误:
object Execution extends App {
val reader = OracleReader()
val SEPARATOR = System.getProperty("file.separator")
val END_PATH = s"${System.getProperty("user.dir")}${SEPARATOR}testingDumpResults"
PublishFile().publishThroughFile(END_PATH, reader)
}
此外,当我使用 InteliJ 界面运行程序时,它会运行,但我似乎找不到错误的原因。
看起来您正确地将 Execution 定义为 Scala 对象。但是,当您尝试使用带有 -jar 选项的 java 命令来执行它时,Java 需要一个带有 main 方法的 Java 类,而不是 Scala 对象。
要执行打包在 JAR 文件中的 Scala 程序,您应该使用 scala 命令而不是 java。以下是运行 Scala 程序的方法:
scala -cp MyProgram.jar oracle.Execution