Comme Matthew Flaschen a commentéanswered, vous aurez besoin d'avoir un " fichier manifeste "dans votre pot, et qui devrait contenir Main-Class
en-tête indiquant quelle est la classe principale dans le pot à exec ute. The answer by aioobe illustre parfaitement la manière la plus simple de le faire.
Mais au lieu de le faire toujours « manuellement », je vous recommande de jeter un oeil à un outil de construction , tels que Apache Ant (ou Maven, mais c'est probablement un peu plus difficile à démarrer avec), qui sont très couramment utilisés pour automatiser ce genre de séquences de construction.
Avec Ant, vous allez pouvoir créer "buildfile" (le plus souvent nommé build.xml
) comme ceci:
<project name="Tester">
<target name="build"
description="Compiles the code and packages it in a jar.">
<javac srcdir="src" destdir="classes" source="1.6" target="1.6"/>
<jar destfile="Tester.jar">
<fileset dir="classes"/>
<manifest>
<attribute name="Main-Class" value="com.example.Tester"/>
</manifest>
</jar>
</target>
</project>
Maintenant, appelant ant build
compilerait votre code et emballez-le dans "Tester.jar", qui contiendra également le type correct d'en-tête de manifeste, de sorte que vous pouvez l'exécuter avec java -jar Tester.jar
. (Notez que cet exemple suppose que vos sources sont dans le répertoire "src", par rapport à l'endroit où vous exécutez la commande.Vous aurez également besoin d'avoir installé Ant bien sûr.)
Si vous décidez d'essayer Ant, son official manual sera extrêmement utile (en particulier la liste des tâches Ant « » qui montre par exemple quelles sont les options que vous pouvez donner à tâches spécifiques telles que javac
ou jar
).
@Matthew, je suppose que c'est probablement ce que veut OP. (Définissez la classe principale et vous serez en mesure d'exécuter le programme directement à partir du pot.) Votre commentaire fonctionnerait bien comme une réponse réelle. – Jonik