wizulus
wizulus

Reputation: 6343

Scala+Linux: Cannot find main class for jar

I have a simple scala program:

main.scala:

object Program {
  def main(args: Array[String]) {
    println("Hello World");
  }
}

It compiles just fine:

$ scalac -nowarn -d bin/scala.jar code/main.scala

When I run it, I get the error:

$ scala bin/scala.jar 
Exception in thread "main" java.lang.RuntimeException: Cannot find main class for jar: bin/scala.jar
    at scala.sys.package$.error(package.scala:27)
    at scala.tools.nsc.MainGenericRunner$$anonfun$runTarget$1$1.apply(MainGenericRunner.scala:62)
    at scala.tools.nsc.MainGenericRunner$$anonfun$runTarget$1$1.apply(MainGenericRunner.scala:62)
    at scala.Option.getOrElse(Option.scala:108)
    at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:62)
    at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:80)
    at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:89)
    at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)

If I follow this same procedure on Windows, the program executes just fine. How do I fix this?

Upvotes: 0

Views: 1049

Answers (1)

Brian
Brian

Reputation: 20285

Scala can't find the main class because scala.jar is not on the classpath which contains Program. Run it with scala -cp scala.jar Program to set up the classpath and call the main in Program.

Upvotes: 1

Related Questions