Erzeugt .jar von scala

8

Ich entwickle eine Anwendung auf Eclipse mit Scala und möchte ein .jar erstellen. Ich habe Tuto gefunden, um das zu tun, aber es benutzt das Paket scala.tools.nsc und ich weiß nicht, wo ich dieses Ding finden kann.
Ich habe auch versucht, die .class zu generieren und dann mit dem Befehl jar cmf .... die .jar zu generieren, aber wenn ich .jar starte, tritt ein Fehler auf. (NoClassFound)
Mit sbt habe ich es auch versucht, aber wenn ich mein Projekt kompiliere, das mit Eclipse arbeitet, treten viele Fehler auf.

Jemand kann mir erklären, wie ich einfach ein .jar mit Eclipse oder anderen Tools erstellen kann.

    
Snoopy 21.07.2011, 08:22
quelle

4 Antworten

11

Eclipse hat eine eingebaute Option, um lauffähige Jars zu erzeugen, aber es ist gut versteckt. Außerdem erkennt es die main () - Signaturen von Scala nicht, daher müssen Sie eine Java-Klasse mit einer main () -Methode erstellen.

  1. Erstellen Sie eine Java-Klasse mit einer main () -Methode, die den Aufruf einfach an Ihren Scala-Code weiterleitet.

  2. Klicken Sie dann mit der rechten Maustaste auf Ihre neu erstellte Java-Klasse und wählen Sie: Ausführen als - & gt; Java-Anwendung. Dadurch wird eine ausführbare Konfiguration erstellt, die später als Teil Ihrer ausführbaren JAR-Datei verwendet wird.

  3. Jetzt können Sie die Option runnable jar im Eclipse-Menü auslesen: Datei - & gt; Export - & gt; Java - & gt; Durchführbare JAR-Datei

  4. Wählen Sie im angezeigten Dialogfeld die zuvor von Ihnen erstellte Startkonfiguration (in Schritt 2), benennen Sie Ihr jar (myapp.jar), wählen Sie die Exportoptionen für Ihre Abhängigkeit aus und klicken Sie auf Fertig stellen.

  5. Das jar wird standardmäßig im Eclipse-Arbeitsbereich erstellt.

  6. Führen Sie das Glas mit der folgenden Zeile aus: scala myapp.jar

Ihre Frage zu fehlenden Bildern: Eclipse erfordert eine manuelle Aktualisierung, wenn Dateien hinzugefügt oder entfernt werden. Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie Aktualisieren.

Damit ist das Tutorial auf der sehr intuitiven Eclipse-Oberfläche abgeschlossen.

Hinweis: Anweisungen für Eclipse-Version 3.6.2.

    
Lex 21.07.2011 21:55
quelle
3

Gläser

Wenn Sie ein Array aus Ihren Klassen erstellen, sind die Abhängigkeiten möglicherweise nicht in diesem Array enthalten. Wenn Sie diesen Jar ausführen, müssen Sie die Jars mit den Abhängigkeiten auf den Klassenpfad setzen (mit der Option -cp auf Java). Die wichtigste Abhängigkeit ist das scala-library jar. Natürlich hilft es, wenn man weiß, was NoClassDefFound nicht findet.

Sbt

Beim Erstellen mit sbt fehlen möglicherweise Abhängigkeiten, die Sie manuell zum Eclipse-Projekt hinzugefügt haben. (Hinweis: Ich habe nicht sbt).

Maven

Ich fand den klarsten und schmerzlosesten Weg, mit Maven allein zu gehen, oder vielleicht maven + Intellij Idee (Community Edition ist kostenlos) + Scala Plugin. Funktioniert sehr glatt.

Für maven müssen Sie den verfügbaren scala Archetyp ein bisschen anpassen, da die Bibliotheken, auf die er sich bezieht, nicht die neueste Version sind, aber abgesehen davon ist es sehr gut.

Hier ist ein pom.xml Ich benutze: Ссылка

Verwenden Sie die Standardmaven-Ordnerstruktur (Quellstammverzeichnis ist src / main / scala), und dann erstellt mvn package das jar fine.

    
ron 21.07.2011 09:37
quelle
1

Verwenden Sie die folgenden Schritte für die Zeit zu sein. Aber das ist nicht die Vollzeit-Lösung.Bessere für sbt Bauglas für Spark-Scala-Kombination zu gehen. Temporäre Lösung mit Java-Klasse, Aufruf der Hauptklasse scala. MainClass.java

%Vor%

SampleApp.scala

%Vor%

Exportieren Sie es als ein jar, indem Sie den normalen Java-jar-Export verwenden, indem Sie die MainClass-Hauptmethode wählen. Benennen Sie die JAR-Datei als Sample.jar Führen Sie es im Cluster mit dem Befehl unter aus.

  

/ spark / bin / spark-submit - Klasse com.scala.MainClass SampleScala.jar

Die Ausgabe, die Sie erhalten können als: Erste Scala SampleApp

    
Kumar Basapuram 09.06.2015 13:58
quelle
0
%Vor%     
extempore 22.07.2011 22:39
quelle

Tags und Links