2011-08-04 8 views
0

Je suis en train de compiler une application à partir de la ligne de commandeCompiler java de la ligne de commande

Le programme compile et fonctionne très bien dans Eclipse, howvever quand je goto la ligne de commande et utiliser javac pour compiler mon fichier java je reçois 23 erreurs, dont la plupart sont Can not Find Symbol, avec une flèche pointant vers le. dans un nom de paquet.

Est-ce que quelqu'un a des idées sur ce que je dois faire différemment?

Merci

+3

il semble. ce sont les problèmes de classpath, IDE le gère pour vous, du terminal vous devez le faire –

+0

avez-vous défini votre classpath? – amit

+0

@rik: Vérifiez votre chemin de classe. Avez-vous inclus tous les pots et paquets nécessaires dans votre chemin de classe? –

Répondre

0

Je déconseille de définir le classpath comme variable d'environnement car il est trop intrusif (tous vos programmes Java le verront).

Une ligne de commande pour compiler une application Java qui dependes sur Log4j pourrait ressembler à ceci:

javac -cp C:\dev\mvn\repo\log4j\log4j\1.2.16\log4j-1.2.16.jar AppenderTester.java 

Si vous avez plusieurs entrées classpath dont vous avez besoin de les séparer par un point-virgule.

Pour faciliter l'utilisation, vous pouvez créer un script de démarrage. Cela peut être un script batch simple ou un script ant plus élaboré (qui nécessite l'installation d'une fourmi).

Ceci n'est que la pointe de l'iceberg connu sous le nom de 'classpath hell'.

EDIT: vous pouvez également consulter la fonction Eclipse 'export runnable JAR', qui regroupe votre application avec toutes ses dépendances dans un fichier JAR.

+0

D'accord, et en pratique, vous seriez presque certainement définir le CLASSPATH dans le contexte d'un script de construction. Bien sûr, le but ultime serait d'utiliser Maven, et son excellent système de gestion des dépendances, pour alléger l'enfer de classe auquel vous faites référence. –

4

Votre chemin de classe n'est pas configuré correctement. Regardez votre projet Eclipse dans le fichier .classpath. Vous y trouverez beaucoup d'éléments de classpathentry. Vous devrez répliquer ceci pour votre compilation en ligne de commande. Pour cela, vous devez d'abord définir votre variable d'environnement CLASSPATH sur une liste de répertoires (ou de fichiers jar) contenant des définitions de classe.

Vous pouvez également utiliser un outil de construction appelé ant pour automatiser cela pour vous.

Questions connexes