开发者

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

开发者 https://www.devze.com 2023-01-16 01:46 出处:网络
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.

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 librar开发者_如何学Goies, 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.


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.


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").

0

精彩评论

暂无评论...
验证码 换一张
取 消