2017-10-18 27 views
1

Je suis nouveau dans la programmation Eclipse et java, alors s'il vous plaît soyez gentil et toute aide est très appréciée.Utiliser Eclipse IDE peut compiler et exécuter le programme Java parfaitement, mais quand j'utilise 'javac' il en résulte une erreur

J'ai récemment écrit un programme utilisant Java et Eclipse IDE.

J'ai fait la classe suivante:

package Test; 
import java.util.*; 
import Test.AnotherClass; 

public class Program{ 
    public static void main(String[] args){ 
    AnotherClass ac = new AnotherClass(); 
    ac.callingAMethod(); 
    } 
} 

Cette classe se trouve dans un fichier nommé Program.java et j'ai fait un autre fichier nommé AnotherClass.java qui est mis en œuvre comme ceci:

package Test; 
import java.util.*; 

public class AnotherClass{ 
    public void callingAMethod(){ 
    System.out.println("Hello, World!"); 
    } 
} 

maintenant , si j'utilise Eclipse alors le programme fonctionne parfaitement et montre même la sortie "Hello, World!" dans la console d'Eclipse. Mais si je l'utilise Terminal et javac pour compiler il me donne l'erreur suivante:

Program.java:3: error: cannot find symbol import Test.AnotherClass; ^ symbol: class AnotherClass location: package Test Program.java:58: error: cannot find symbol AnotherClass ac = new AnotherClass(); ^ symbol:
class AnotherClass location: class Program Program.java:58: error: cannot find symbol AnotherClass ac = new AnotherClass(); ^ symbol: class AnotherClass location: class Program 3 errors

Une autre question est Eclipse crée construit dans les fichiers .class dans/bin et si je puis exécuter sur le terminal puis il me donne ce qui suit erreur:

Error: Could not find or load main class Program

Je ne peux pas arriver à trouver la question, comment se fait le programme peut compiler dans Eclipse IDE et montrer la sortie ainsi, alors que quand j'utilise « java » « javac » pour compiler et utiliser ensuite courir c'est lancer des erreurs.

Toute aide est appréciée. Je vous remercie.

+0

Quelle ligne de commande utilisez-vous pour compiler avec 'javac'? –

+1

Juste un indice, le nom du paquet devrait être en minuscules, par exemple le test du paquet; au lieu du paquet Test; ce n'est pas une erreur, juste une convention de style http://www.oracle.com/technetwork/java/codeconvtoc-136057.html – Doleron

+0

en utilisant la commande: "javac.Programme.java AnotherClass.java". et maintenant sa compilation mais quand j'utilise "java Program" ou "java Program" dans le répertoire bin (où les fichiers .class sont assis), je reçois toujours la même erreur -> Erreur: Impossible de trouver ou de charger la classe principale Programme –

Répondre

0

Vous devez d'abord compiler vos classes AnotherClass.java et Program.java pour créer des fichiers binaires (fichiers .class) comme ceci:

javac Program.java AnotherClass.java 

Ensuite, vous devez aller dans le répertoire où le nom du package « test » existe. Ensuite, vous devez exécuter la commande ci-dessous qui comprennent aussi le chemin de classe tout en appelant la classe qui contient votre principale méthode:

java -classpath . test.Program 
0

Lorsque vous essayez de compiler Program.java en utilisant javac, il est attend le fichier de classe pour AnotherClass, comme vous ont fait référence dans cette classe, même si l'éclipse a créé ce fichier de classe lorsque vous avez exécuté le code javac ne connaît pas ce fichier de classe, de sorte que la solution pour la première erreur est

  1. Compile AnotherClass.java en utilisant javac d'abord, puis compiler Program.java

  2. Le second problème est lorsque vous avez inclus une classe dans le package et compilez en utilisant javac, il ne créera pas la structure du paquet, pour créer la structure du paquet donne la commande ci-dessous

    javac -d. AnotherClass.java

    javac -d. Program.java

    java Test.Program

vous pouvez remplacer "" avec n'importe quel répertoire, j'ai donné "." pour créer une structure de paquet dans le même répertoire.Cela vous donne une sortie requise

0

Pour utiliser la ligne de commande pour compiler, vous devez spécifier certains paramètres autres que le nom du fichier de classe afin de compiler plus de 1 fichier en une seule fois:

javac -sourcepath src -d bin src\Test\Program.java 

Il trouvera et compiler toutes vos classes liées avec Program.java, c'est-à-dire, AnotherClass.java, situé dans le sourcepath src, et placez toutes les classes compilées dans bin, comme ce que fait l'éclipse.

Pour exécuter votre programme situé sous bin:

java -classpath bin Test.Program 

Il trouvera les classes compilées dans bin et l'exécuter.