web-dev-qa-db-fra.com

Comment exécuter un programme Java à partir de la ligne de commande sous Windows?

J'essaie d'exécuter un programme Java à partir de la ligne de commande sous Windows. Voici mon code:

import Java.io.File;
import Java.io.FileInputStream;
import Java.io.FileOutputStream;
import Java.io.IOException;
import Java.io.InputStream;
import Java.io.OutputStream;

public class CopyFile
{
    public static void main(String[] args)
    {

        InputStream inStream = null;
        OutputStream outStream = null;

        try
        {

            File afile = new File("input.txt");
            File bfile = new File("inputCopy.txt");

            inStream = new FileInputStream(afile);
            outStream = new FileOutputStream(bfile);

            byte[] buffer = new byte[1024];

            int length;
            // copy the file content in bytes
            while ((length = inStream.read(buffer)) > 0)
            {

                outStream.write(buffer, 0, length);

            }

            inStream.close();
            outStream.close();

            System.out.println("File is copied successful!");

        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

Je ne sais pas comment exécuter le programme - aucune aide? Est-ce possible sous Windows? Pourquoi est-ce différent d'un autre environnement (je pensais que JVM était écrit une fois, exécuté n'importe où)?

195
Elizabeth Turner

Source: javaindos.

Disons que votre fichier est dans C:\mywork \

Exécuter l'invite de commande 

C:\> cd \mywork

Cela fait de C:\mywork le répertoire actuel.

C:\mywork> dir

Ceci affiche le contenu du répertoire. Tu devrais voir filenamehere.Java parmi les fichiers.

C:\mywork> set path=%path%;C:\Program Files\Java\jdk1.5.0_09\bin

Cela indique au système où trouver les programmes JDK.

C:\mywork> javac filenamehere.Java

Cela exécute javac.exe, le compilateur. Vous ne devriez voir que le prochain système invite ...

C:\mywork> dir

javac a créé le fichier filenamehere.class. Tu devrais voir filenamehere.Java et filenamehere.class parmi les fichiers.

C:\mywork> Java filenamehere

Ceci exécute l'interpréteur Java. Vous devriez alors voir votre programme sortie.

Si le système ne peut pas trouver javac, vérifiez la commande set path. Si javac fonctionne mais vous obtenez des erreurs, vérifiez votre texte Java. Si le programme compile mais vous obtenez une exception, vérifiez l’orthographe et majuscule dans le nom du fichier et le nom de la classe et le Java Commande HelloWorld. Java est sensible à la casse!

215
Nicholas Kadaeux

Pour compléter la réponse:

  1. Le fichier Java

    TheJavaFile.Java
    
  2. Compilez le fichier Java dans un fichier * .class

    javac TheJavaFile.Java
    
    • Cela va créer un fichier TheJavaFile.class
  3. Exécution du fichier Java

    Java TheJavaFile
    
  4. Création d'un fichier exécutable *.jar

    • Vous avez deux options ici -

      1. Avec un fichier manifeste externe:

        • Créez le fichier manifeste say - MANIFEST.mf 

        • Le fichier MANIFEST n'est rien d'autre qu'une entrée explicite de la classe principale 

        • jar -cvfm TheJavaFile.jar MANIFEST.mf TheJavaFile.class

      2. Exécutable par Point d'entrée:

        • jar -cvfe TheJavaFile.jar <MainClass> TheJavaFile.class
  5. Pour exécuter le fichier Jar

    Java -jar TheJavaFile.jar
    
96
2324

Si votre classe Java est dans un package. Supposons que votre classe Java nommée ABC.Java soit présente dans com.hello.programs, vous devez alors l'exécuter avec le nom du package.

Compilez-le de la manière habituelle:

C:\SimpleJavaProject\src\com\hello\programs > javac ABC.Java

Mais pour l’exécuter, vous devez donner le nom du paquet puis votre nom de classe Java:

C:\SimpleJavaProject\src > Java com.hello.programs.ABC
17
Harshad Holkar

Compile un fichier Java pour générer une classe:

javac filename.Java

Execute la classe générée:

Java filename
16
Paresh3489227

C'est facile. Si vous avez enregistré votre fichier sous A.text, vous devez tout d’abord le sauvegarder sous A.Java. Maintenant, c'est un fichier Java. 

Maintenant, vous devez ouvrir cmd et définir le chemin d'accès à votre fichier A.Java avant de le compiler. vous pouvez vous référer ceci pour cela.

Ensuite, vous pouvez compiler votre fichier en utilisant la commande 

javac A.Java

Puis lancez-le avec

Java A

C'est ainsi que vous compilez et exécutez un programme Java dans cmd . Vous pouvez également consulter ces matériel qui constituent des leçons Java approfondies. Beaucoup de choses que vous devez comprendre en Java sont couvertes pour les débutants.

8
Eliza Helena

Vous pouvez compiler n’importe quelle source Java en utilisant javac en ligne de commande; Par exemple, javac CopyFile.Java . Pour exécuter: Java CopyFile . Vous pouvez également compiler tous les fichiers Java à l'aide de javac * .Java tant qu'ils se trouvent dans le même répertoire.

Si vous rencontrez un problème résultant de "impossible de trouver ou de charger la classe principale", il est possible que Jre ne se trouve pas dans votre chemin. Regardez cette question: Impossible de trouver ou de charger la classe principale

6
monika

En supposant que le fichier s'appelle "CopyFile.Java", procédez comme suit:

javac CopyFile.Java
java -cp . CopyFile

La première ligne compile le code source en code d'octet exécutable. La deuxième ligne l'exécute en ajoutant d'abord le répertoire en cours au chemin de classe (au cas où).

6
YakovK

Sur Windows 7, je devais faire ce qui suit:

façon rapide

  1. Installez JDK http://www.Oracle.com/technetwork/Java/javase/downloads
  2. dans Windows, accédez à "C:\Program Files\Java\jdk1.8.0_91\bin" (ou à l'emplacement d'installation de la dernière version de JDK), maintenez la touche Maj enfoncée, cliquez avec le bouton droit de la souris sur une zone vide de la fenêtre et ouvrez fenêtre de commande ici "et cela vous donnera une ligne de commande et un accès à tous les outils BIN. "javac" n'est pas par défaut dans la variable d'environnement PATH du système Windows.
  3. Suivez les commentaires ci-dessus sur la manière de compiler le fichier ("javac MonFichier.Java", puis "Java MonFichier") https://stackoverflow.com/a/33149828/194872

long chemin

  1. Installez JDK http://www.Oracle.com/technetwork/Java/javase/downloads/index.html
  2. Après l’installation, édite la variable d’environnement Windows PATH et ajoute ce qui suit au chemin C:\ProgramData\Oracle\Java\javapath. Ce dossier contient des liens symboliques vers une poignée d'exécutables Java mais "javac" N'EST PAS l'un d'entre eux. Ainsi, lorsque vous essayez d'exécuter "javac" à partir de la ligne de commande Windows, une erreur est générée.
  3. J'ai modifié le chemin: Panneau de configuration -> Système -> onglet Avancé -> bouton "Variables d'environnement ..." -> faites défiler jusqu'à "Chemin", mettez en surbrillance et modifiez -> a remplacé le "C:\ProgramData\Oracle\Java\javapath "avec un chemin direct vers le dossier BIN Java" C:\Program Files\Java\jdk1.8.0_91\bin ".
  4. Cela se produit probablement lorsque vous mettez à niveau votre installation JDK, mais vous avez maintenant accès à tous les outils de ligne de commande.

  5. Suivez les commentaires ci-dessus sur la manière de compiler le fichier ("javac MonFichier.Java", puis "Java MonFichier") https://stackoverflow.com/a/33149828/194872

4
Chris Smith

 enter image description here ÉTAPE 1: Ouvrez d’abord l’invite de commande où votre fichier IS est situé. (clic droit en appuyant sur shift)
ÉTAPE 2: ALORS, UTILISEZ LES COMMANDES SUIVANTES POUR EXÉCUTER . (Disons que le nom du fichier et de la classe à exécuter s'appelle Student.Java). Le programme d'exemple est dans le fond de l'image.

     javac Student.Java
     Java Student

 enter image description here

2
Ashwant Manikoth

A partir de Java 9, le JDK inclut jshell, un Java REPL.

En supposant que le répertoire JDK 9+ bin soit correctement ajouté à votre chemin, vous pourrez simplement:

  1. Exécutez jshell File.Java - File.Java étant votre fichier bien sûr. 
  2. Une invite s'ouvrira, vous permettant d'appeler la méthode main: jshell> File.main(null).
  3. Pour fermer l'invite et mettre fin à la session JVM, utilisez /exit

Une documentation complète sur JShell peut être trouvée ici .

0
Horsey

Depuis Java 11, l'outil de ligne de commande Java a été capable d'exécuter directement un code source à fichier unique. par exemple.

Java HelloWorld.Java

Il s’agissait d’une amélioration avec JEP 330: https://openjdk.Java.net/jeps/330

Pour plus d'informations sur l'utilisation et les limitations, consultez le manuel de votre implémentation Java, tel que celui fourni par Oracle: https://docs.Oracle.com/en/Java/javase/11/tools/Java.html

0
akawaguc

Maintenant (à partir de JDK 9), vous pouvez simplement utiliser Java pour l'exécuter. Pour exécuter "Hello.Java" contenant le fichier principal, on peut utiliser: Java Hello.Java

Vous n'avez plus besoin de compiler en utilisant séparément en utilisant javac.

0
Shiba