Sono imbarazzato per chiedere questo, ma non riesco a capire come eseguire un programma scala definito per essere all'interno di un pacchetto.Scala problema - come eseguire un programma che si trova in un pacchetto?
Esempio:
package foo.bar {
object Hello {
def main(args:Array[String]) {
println("Hello")
}
}
}
Dopo aver compilato il file Hello.scala, ottengo la struttura delle directory atteso
-- foo
| `-- bar
| |-- Hello$.class
| `-- Hello.class
cose che ho provato:
[email protected] ~/Desktop/Programming/Scala master$ fsc Hello.scala
[email protected] ~/Desktop/Programming/Scala master$ scala Hello
no such file: Hello
[email protected] ~/Desktop/Programming/Scala master$ scala -classpath foo/bar/ Hello
Exception in thread "main" java.lang.NoClassDefFoundError: Hello (wrong name: foo/bar/Hello)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:676)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at scala.tools.nsc.ObjectRunner$.findClass(ObjectRunner.scala:29)
at scala.tools.nsc.ObjectRunner$.classExists(ObjectRunner.scala:42)
at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:149)
at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
[email protected] ~/Desktop/Programming/Scala master$ scala foo/bar/Hello
no such file: foo/bar/Hello
[email protected] ~/Desktop/Programming/Scala master$ scala foo/bar/Hello.class
vedo un sacco di esempi online che spiegano come impacchettare i file. Ma non vedo nessuno che mostra come eseguire il file dalla riga di comando.
Qualsiasi aiuto sarebbe apprezzato.
Grazie per risposta immediata. Molto obbligato. Accetterò la risposta quando il timer di raffreddamento termina. – I82Much