Ivan
Ivan

Reputation: 64207

How o run a NetBeans-built Scala application jar from command line outside IDE?

A program of mine (written in Scala 2.8) works fine when launched by means of NetBeans IDE. But when I try to run it from outside, with "java- jar", it says "Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject...". Putting all the libraries, incl. Scala runtime inside the same dir as the jar to be run doesn't help. If i try to run the jar with scala itself, it complains that it can't decode it as utf-8 (it expects a scala source rather than a jar, I suppose). So how do I run a Scala application at all?

UPDATE: For those who come here later having the same question I'd recommend to read comments under barjak's answer (including those latest ones hidden), the answer is there. VonC also gives some interesting links on the subject.

Upvotes: 3

Views: 962

Answers (2)

barjak
barjak

Reputation: 11270

The -jar and -classpath of the java command are mutually exclusive : you can't do java -jar YourScalaProg.jar -classpath scala-library.jar

If you want to run your application with java -jar, then the full classpath must be specified in the Class-Path section of the jar's manifest.

You can run your application using only -classpath, like that : java -classpath YourScalaProg.jar:scala-library.jar your.package.MainClass.

Upvotes: 4

VonC
VonC

Reputation: 1325017

Are you using scala-library.jar as described in Adventures with Scala blog post?

java -classpath scala-library.jar:. YourClass

or:

java -classpath scala-library.jar:yourApp.jar YourClass

Where YourClass is was your scalac compiled Scala code.

You will find the same scala-library.jar used in the SO question "Creating a jar file from a Scala file" (or in the blog post "the not so elegant way of creating an executable jar from scala code").

Upvotes: 3

Related Questions