Kann ein Scala-Programm kompiliert werden, um auf einer beliebigen JVM ausgeführt zu werden, ohne Scala auf dem gegebenen Rechner installiert zu haben?

7

Wenn ich ein Scala-Programm geschrieben habe, kann ich es so kompilieren, dass es jeder mit einer standardmäßigen Sun Java JVM ausführen kann? Ich nehme an, dass der Scala-Compiler den Scala-spezifischen API-Code in das kompilierte Projekt aufnehmen müsste? Der Grund, warum ich daran interessiert bin, ist, dass unsere Klassenprojekte normalerweise in der gewünschten Sprache geliefert werden können, aber TAs, die die Lieferungen klassifizieren, möchten den Code normalerweise entweder auf ihrem eigenen Computer oder auf Labormaschinen laufen lassen.

    
Vegard 12.12.2009, 15:12
quelle

3 Antworten

20

Sie müssen nichts Spezielles tun, um Ihr kompiliertes Scala-Programm auf JVM auszuführen. Es ist einfach JVM Bytecode. Sie müssen lediglich sicherstellen, dass die Standard-Scala-Bibliothek (scala-library.jar) zur Laufzeit in Ihrem Klassenpfad enthalten ist. Dies ist nur eine zusätzliche Abhängigkeit (oder vielleicht benötigen Sie auch scala-swing.jar, wenn Sie Swing-Wrapper für Ihre GUI verwenden).

Wenn Sie sich Gedanken über die Benutzerfreundlichkeit machen, können Sie Ihre Anwendung sogar in ein einzelnes jar packen, das den Inhalt von scala-library.jar und Ihre eigenen Klassen und Ressourcen enthält. Aber persönlich würde ich das nur tun, wenn dieses jar ausführbar ist (kann als java -jar yourApplication.jar ausgeführt werden).

Hinweise zur Scala-Bibliothek:

  1. Es bietet genau das - Bibliothek. Kein Interpreter, kein Compiler oder irgendeine spezielle Ausführungsumgebung; Sie sollten sich also keine Gedanken über Probleme beim Laden von Klassen machen.
  2. Es sollte mit der Version von Scala übereinstimmen, die Sie beim Kompilieren Ihres Programms verwenden (die Scala-Bibliothek für 2.7 und für 2.8 ist nicht austauschbar).
  3. Sie finden es in Ihrer Scala-Distribution: lib / scala-library.jar
Petr Gladkikh 12.12.2009, 15:59
quelle
5

Ja. Wenn Sie die entsprechende Scala-Bibliotheks-Jar-Datei in den Klassenpfad einschließen, kann ein Scala-Programm mit Java ausgeführt werden, da der kompilierte Scala-Code dem kompilierten Java-Code entspricht.

    
Sean Reilly 12.12.2009 15:15
quelle
1

Wenn Sie jemals eine Java-Bibliothek verwendet haben, behandeln Sie Scala einfach wie diese. Besorge Scalas Glas (das Bibliotheks-Glas) und packe es entweder zusammen mit deinem Glas unter Verwendung eines der dafür verfügbaren Programme oder verteile es zusammen.

    
Daniel C. Sobral 12.12.2009 18:32
quelle