2010-05-22 7 views
5

corro:¿Cómo puedo ejecutar un paquete creado con Simple Build Tool?

$ echo 'object Hi { def main(args: Array[String]) { println("Hi!") } }' > hw.scala 
$ sbt 
> warn 
Set log level to warn 
> run 
Hi! 
> package 
$ java -jar target/scala_2.7.7/test_2.7.7-1.0.jar 
Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:621) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 

Por qué no puedo ejecutar este paquete frasco de esta manera?

Respuesta

4

Está intentando ejecutarlo sin scala runtime. O bien utilizar el ejecutable Scala:

scala -jar target/scala_2.7.7/test_2.7.7-1.0.jar 

o, añadir el frasco Scala a la ruta de clase

java -cp target/scala_2.7.7/test_2.7.7-1.0.jar:$PATH_TO_SCALA_JAR Hi 
+0

no puedo correr el primero ya que tengo instalado ningún Scala (SBT descargado y usar internamente). El segundo no funciona. –

+0

java -cp project/boot/scala-2.7.7/lib/scala-library.jar :. -jar target/scala_2.7.7/test_2.7.7-1.0.jar Hola # No funciona. –

+0

No puede mezclar -cp y -jar con el ejecutable java. Incluya su test_2.7.7-1.0.jar en el classpath. Si estás en Windows, el separador es; No: Así que, por favor, intente: java -cp proyecto/boot/scala-2.7.7/lib/scala-library.jar: diana/scala_2.7.7/test_2.7.7-1.0.jar Hola – Synesso

0

No sé qué versión de SBT que está usando, o lo que la configuración del proyecto que ha usado , pero normalmente su archivo hw.scala debe colocarse en el directorio src/main/scala para que sbt lo encuentre. Además, como señaló Synesso, el tiempo de ejecución scala parece estar ausente. Normalmente, sbt solo descargará estos al crear un nuevo proyecto. yo sólo lo intentaron usar SBT 0.7.3 en un proyecto Fres, y esto funciona:

 
$ sbt 
Project does not exist, create new project? (y/N/s) y 
Name: test 
Organization: test 
Version [1.0]: 
Scala version [2.7.7]: 
sbt version [0.7.3]: 
Getting Scala 2.7.7 ... 
:: retrieving :: org.scala-tools.sbt#boot-scala 
    confs: [default] 
    2 artifacts copied, 0 already retrieved (9911kB/26ms) 
Getting org.scala-tools.sbt sbt_2.7.7 0.7.3 ... 
:: retrieving :: org.scala-tools.sbt#boot-app 
    confs: [default] 
    15 artifacts copied, 0 already retrieved (4023kB/25ms) 
[success] Successfully initialized directory structure. 
[info] Building project test 1.0 against Scala 2.7.7 
[info] using sbt.DefaultProject with sbt 0.7.3 and Scala 2.7.7 

> exit 

$echo 'object Hi { def main(args: Array[String]) { println("Hi!") } }' > src/main/scala/hw.scala 

> sbt 
[info] Building project test 1.0 against Scala 2.7.7 
[info] using sbt.DefaultProject with sbt 0.7.3 and Scala 2.7.7 
> run 
Hi! 

> package 
[info] 
[info] == compile == 
[info] Source analysis: 0 new/modified, 0 indirectly invalidated, 0 removed. 
[info] Compiling main sources... 
[info] Nothing to compile. 
[info] Post-analysis: 2 classes. 
[info] == compile == 
[info] 
[info] == package == 
[info] == package == 
[success] Successful. 

+0

creé usando proyecto de borrador - s en (s/N/s). Usando nuevo sbt. Se descargó Scala en sí. –

Cuestiones relacionadas