Générer .pot de scala
Je suis du développement d'une application sous Eclipse avec Scala et un voudrais créer un .jar. J'ai trouvé le tuto pour le faire, mais d'utiliser le package scala.outils.nsc et je ne sais pas où je peux trouvé cette chose.
J'ai essayé aussi, pour générer le .de la classe et puis avec la commande jar cmf ....
pour générer le .jar
mais lorsque je lance le .jar
une erreur se produit. (NoClassFound)
Avec sbt, j'ai essayé aussi, mais quand je compile mon projet de travail avec eclipse beaucoup d'erreur apparaît.
Quelqu'un peut m'expliquer comment je peux simplement créer un .jar avec Eclipse ou un autre outils.
J'ai corrigé "java cmf" à "pot de fmc', veuillez vérifier si c'est ok. Et regarde la faq et méta et la barre latérale, la façon de modifier votre post. Mise en page et ainsi de suite. En général, lors de la demande en raison d'une erreur: Qu'avez-vous exactement? De commande? Couper / " coller pour éviter les erreurs de transfert. Copier et coller le message d'erreur exact. Dans l'annuaire ne vous lancez la commande, qu'est-ce que la structure de votre fichier, ce projet nom avez-vous choisi, de ne la hiérarchie des fichiers correspondent aux répertoires? Avez-vous utilisé
jar
avant, par exemple avec Java
et avec quel succès? Merci.OriginalL'auteur Snoopy | 2011-07-21
Vous devez vous connecter pour publier un commentaire.
Eclipse a une option pour générer des exécutables, des pots, mais c'est bien caché. Aussi il ne reconnaît pas la Scala main() de signatures, de sorte que vous aurez à créer une classe Java avec une méthode main ().
Créer une classe Java avec une méthode main() qui, tout simplement, transmet l'appel à votre Scala code.
Puis cliquez droit sur votre nouvelle classe Java et sélectionnez: Exécuter en tant Qu' -> Java Application.
Cela va créer un exécutable de configuration qui sera utilisée plus tard comme une partie de votre runnable jar.
Maintenant, vous êtes prêt à creuser la runnable jar option à partir de l'Éclipse du menu:
Fichier -> Export -> Java -> Runnable JAR file
Dans la boîte de dialogue sélectionner la Configuration de Lancement que vous avez créé précédemment (étape 2), le nom de votre pot (myapp.jar), sélectionnez votre dépendance à l'export options et cliquez sur terminer.
Le pot va être créé dans l'Eclipse de l'espace de travail par défaut.
Exécuter le pot à l'aide de la ligne: scala myapp.jar
À votre question à propos des images manquantes: Eclipse nécessite une actualisation manuelle lorsque des fichiers sont ajoutés ou supprimés. Clic droit sur votre projet et sélectionnez Actualiser.
Ceci conclut le tutoriel sur le très intuitive interface Eclipse.
Remarque: les Instructions pour Eclipse version 3.6.2.
J'ai installé une nouvelle version de Scala, c'est pour cela que j'ai l'erreur "Autorisation refusée" mais maintenant, j'ai de la ligne : scala myapp.jar cette erreur : erreur: IO erreur lors du décodage /Users/danymorard/Documents/workspace/myAppl1.jar avec l'encodage UTF-8
Lancement des pots à l'aide de "scala myapp.jar" est prise en charge depuis la Scala 2.9.0. On dirait que vous avez une version ancienne qui essaie de charger le bocal comme un fichier de script. Essayez de lancer le jar avec "java -cp $SCALA_HOME/lib/scala-library.jar:myapp.jar mypackage.Mymain"
Lex merci!!!!!! très bon!!!!! il fonctionne!!!:)
OriginalL'auteur Lex
Pots
Lorsque vous créez un bocal de vos classes, éventuellement, les dépendances ne sont pas inclus dans ce pot. Lors de l'exécution de ce pot, vous devez placer les bocaux contenant les dépendances sur le chemin de la classe (avec l'option-cp passer à java). Plus importante est la
scala-library
jar. Bien sûr, en sachant ce qui n'est pas trouvé par NoClassDefFound pourrait l'aider.Sbt
Lors de la construction avec sbt, peut-être qu'il manque des dépendances que vous avez ajouté manuellement le projet Eclipse? (Note: je n'ai pas utilisé sbt).
Maven
J'ai trouvé la plus claire et la plus indolore façon est d'aller avec maven seul, ou éventuellement maven + Intellij Idea (community edition est gratuit) + Scala Plugin. Fonctionne très lisse.
Pour maven, vous avez besoin d'adapter la disposition scala archétype un peu depuis les bibliothèques dont il est fait référence ne sont pas la version la plus récente, mais en dehors de cela, il est très beau.
Ici est un
pom.xml
je suis en utilisant: https://gist.github.com/1096870Utiliser la norme maven structure de dossier (source de la racine de la src/main/scala) et puis
mvn package
crée le pot d'amende.Ne pas dire "Merci", mais upvote des réponses utiles. Qui, qui permet de résoudre votre problème le mieux (le cas échéant) doit être marquée comme étant accepté de répondre.
OriginalL'auteur ron
Utiliser les étapes ci-dessous pour le moment .Mais ce n'est pas la durée totale de la solution.Mieux aller pour sbt construire jar pour Spark-Scala combinaison.
Solution temporaire à l'aide de java de la classe ,l'appel de la scala classe principale.
MainClass.java
SampleApp.scala
Exporter sous la forme d'un pot en utilisant la normale java jar à l'exportation par le choix de la MainClass la méthode principale.
nom du fichier jar Sample.jar
Exécuter dans le Cluster à l'aide de commande ci-dessous.
La sortie que vous pouvez obtenir:
Première Scala SampleApp
Notez également que j'ai créé un nouveau projet Java et ajout de la Scala libs, comme l'a recommandé ici: stackoverflow.com/questions/11413888/...
OriginalL'auteur Kumar Basapuram
Ce n'est pas un runable jar pour vous. Il ne compresse votre code à l'intérieur d'un fichier jar. Pour le rendre runable, vous devez à un manifeste, où vous définissez le principal de la classe.
OriginalL'auteur psp
Pour se développer à partir de ce que @Kumar Basapuram a écrit:
Faire une classe java appelé "Wrapper.java".
Lien de cette méthode à la méthode main dans le "SampleApp.scala" de la classe.
Projet avec Java et Scala Classes de l'Image
Clic droit sur le Projet ScalaPracticeCreation.
Cliquez Sur Exporter...
Cliquez sur Runnable JAR file dans le dossier Java
L'exportation de la Scala de Classe dans un jar Exécutable Image
Cliquez sur Suivant >
Sélectionnez Wrapper - ScalaPracticeCreations
Sélectionner la destination d'Exportation à un endroit sur votre ordinateur
Sélectionnez "Extraire les bibliothèques requises en JAR généré" en vertu de la "Bibliothèque
manipulation:" option
Cliquez Sur Terminer
Exécuter le fichier par le biais de l'IDE Eclipse et il fonctionne.
Le lancer via l'Invite de Commande et il ne fonctionne pas.
L'Invite De Commande De L'Image
Pour résoudre ce supprimer la println méthodes de la "SampleApp.scala".
ajouter "du Système..println(app.main(args));" à la place "de l'app.main(args);" dans le Wrapper.java classe
Maintenant de réexporter le programme après l'exécution.
le succès dans l'invite de commande de l'Image
Maintenant ça fonctionne.
Voici le supplément d'apport .scala classes. Notez que la Démo.scala classe n'est pas pertinent.
Poids.scala:
Animal.scala:
De la vache.scala:
Cheval.scala:
Moutons.scala:
Noter que cela peut ne pas être la meilleure solution même si c'est une solution fonctionnelle. Scala sbt peut être une meilleure solution: Scala sbt ou ce Scala sbt-assemblée.
OriginalL'auteur Sean