2010-05-28 17 views
32

Tengo algunos problemas con el java. Echale un vistazo.ejecutando aplicaciones scala con java -jar

[email protected]:~/scaaaaaaaaala$ java -cp /home/sebastian/.m2/repository/org/scala-lang/scala-library/2.8.0.RC3/scala-library-2.8.0.RC3.jar:target/scaaaaaaaaala-1.0.jar scaaalaaa.App

Hello World! 

Eso está bien, bien, pero ¿cómo combate esto:

[email protected]:~/scaaaaaaaaala$ java -cp /home/sebastian/.m2/repository/org/scala-lang/scala-library/2.8.0.RC3/scala-library-2.8.0.RC3.jar -jar target/scaaaaaaaaala-1.0.jar

Exception in thread "main" java.lang.NoClassDefFoundError: scala/Application 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:616) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
at scaaalaaa.App.main(App.scala) 
Caused by: java.lang.ClassNotFoundException: scala.Application 
at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
... 13 more 

Wat diablos? ¿Alguna idea de por qué la primera funciona y no la segunda? ¿Cómo puedo -jar mi scala?

Gracias de antemano, hermano.

+29

1 para comenzar tu pregunta para que con "yo dawgs" –

Respuesta

35

Si define-jar la -classpath se ignora:

Java manual:

-jar Cuando se utiliza esta opción, el archivo JAR es la fuente de todas las clases de usuarios , y otra clase de usuario Los ajustes de ruta se ignoran.

Puede definir las dependencias classpath en el Manifest metadata.

La forma más fácil de iniciar su aplicación es el uso de los guiones Scala:

scala -classpath target/scaaaaaaaaala-1.0.jar scaaalaaa.App Hello World! 
+14

Yo preferiría una Descartes personal o Newton. :-) –

2

simplemente ejecutando

scala scaaaaaaaaala-1.0.jar 

obras para mí con 2.11.6

Cuestiones relacionadas