Ich versuche, eine kleine Anwendung (Scala!) auf eine "saubere Art" zu verpacken. Das Ziel ist eine ausführbare JAR-Datei. Ich habe Folgendes getan:
%Vor%
oder
%Vor%
funktioniert aber nicht mit
%Vor%
weil dann scala / ScalaObject nicht gefunden werden kann. Und keine Verwendung eines Klassenpfads für diesen letzten Pfad, da die Option -jar die Option -classpath ignoriert. Beachten Sie, dass ich die SCALA-Bibliotheken in der CLASSPATH-Variablen des Systems hinzugefügt habe, aber sie scheint auch ignoriert zu werden, wenn -jar verwendet wird.
Nach stundenlangem Googlen kann ich keine Möglichkeit sehen, eine kleine JAR-Datei zu erstellen, die beim Doppelklicken gestartet wird und keine schmerzhafte Manipulation erfordert. Was vermisse ich? Ich vermute, es sollte eine Möglichkeit geben zu definieren, wo sich die Scala-Bibliotheken auf Systemebene befinden. Wie gehen Sie mit kleinen Anwendungen um, die kompiliert und betriebsbereit sein sollen?
Beachten Sie, dass ich während der Verwendung von sbt kein Jar-Tool zur Hand habe (ich verlasse mich auf eine JRE, nicht auf ein JDK).
Danke! Pierric.
Das folgende Setup funktioniert für mich:
scala-library.jar
im selben Ordner wie das ausführbare jar (und java von dort aufrufen) Eine weitere Möglichkeit besteht darin, den Inhalt von scala-library.jar in Ihre Anwendung jar zu integrieren. Der Nachteil ist, dass dies seine Größe erhöhen wird. Aber Sie können Proguard verwenden, um unbenutzte Klassen aus Ihrem endgültigen Jar zu entfernen. Ich denke, es gibt eine einfache Möglichkeit, mit sbt eine ausführbare Jar mit proguard zu packen.
Zum Schrumpfen mit Proguard können Sie sich diese Seite ansehen . Es geht um Android-Entwicklung; Ignorieren Sie einfach diesen Teil und werfen Sie einen Blick auf die Tabellen der schrumpfenden Ergebnisse. Einige Beispielanwendungen schrumpfen auf weniger als 100 KB.
Vielleicht müssen Sie Ihre Frage ein wenig verfeinern. Was versuchst du zu erreichen? Möchten Sie das Programm nur auf Ihrem System installieren oder möchten Sie es verteilen?
Wenn Sie nur eine Java-Anwendung schnell starten möchten, ohne die JVM-Startzeit zu beeinflussen, können Sie sich nailgun .
Tags und Links scala jar executable-jar