¿Cómo ejecuto un programa Java desde la línea de comandos en Windows?

Resuelto Elizabeth Turner asked hace 11 años • 13 respuestas

Estoy intentando ejecutar un programa Java desde la línea de comandos en Windows.
Aquí está mi código:

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();
        }
    }
}

No estoy seguro de cómo ejecutar el programa. ¿Alguna ayuda?
¿Es esto posible en Windows?
¿Por qué es diferente a otro entorno (pensé que JVM se escribía una vez y se ejecutaba en cualquier lugar)?

Elizabeth Turner avatar Apr 22 '13 07:04 Elizabeth Turner
Aceptado

Fuente: javaindos.

Digamos que su archivo está en C:\mywork\

Ejecutar símbolo del sistema

C:\> cd \mywork

Esto convierte a C:\mywork en el directorio actual.

C:\mywork> dir

Esto muestra el contenido del directorio. Deberías ver el nombre del archivo aquí.java entre los archivos.

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

Esto le indica al sistema dónde encontrar programas JDK.

C:\mywork> javac filenamehere.java

Esto ejecuta javac.exe, el compilador. No deberías ver nada más que el siguiente mensaje del sistema...

C:\mywork> dir

javac ha creado el archivo filenamehere.class. Deberías ver filenamehere.java y filenamehere.class entre los archivos.

C:\mywork> java filenamehere

Esto ejecuta el intérprete de Java. Entonces deberías ver el resultado de tu programa.

Si el sistema no puede encontrar javac, verifique el comando set path. Si javac se ejecuta pero obtiene errores, verifique su texto de Java. Si el programa se compila pero obtiene una excepción, verifique la ortografía y las mayúsculas en el nombre del archivo y el nombre de la clase y el comando java HelloWorld. ¡Java distingue entre mayúsculas y minúsculas!

Nicholas Kadaeux avatar Apr 22 '2013 00:04 Nicholas Kadaeux

Para completar la respuesta:

  1. El archivo Java

    TheJavaFile.java
    
  2. Compile el archivo Java en un archivo *.class

    javac TheJavaFile.java
    
    • Esto creará un TheJavaFile.classarchivo
  3. Ejecución del archivo Java

    java TheJavaFile
    
  4. Creación de un *.jararchivo ejecutable

    • Tienes dos opciones aquí:

      1. Con un archivo de manifiesto externo:

        • Cree el archivo de manifiesto, digamos - MANIFEST.mf

        • El archivo MANIFEST no es más que una entrada explícita de la clase principal

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

      2. Ejecutable por punto de entrada:

        • jar -cvfe TheJavaFile.jar <MainClass> TheJavaFile.class
  5. Para ejecutar el archivo Jar

    java -jar TheJavaFile.jar
    
jkhosla avatar Oct 15 '2015 13:10 jkhosla

Desde Java 11, javala herramienta de línea de comandos ha podido ejecutar un código fuente de un solo archivo directamente. p.ej

java HelloWorld.java

Esta fue una mejora con JEP 330: https://openjdk.java.net/jeps/330

Para obtener detalles sobre el uso y las limitaciones, consulte el manual de su implementación de Java, como el proporcionado por Oracle: https://docs.oracle.com/en/java/javase/11/tools/java.html

akawaguc avatar May 29 '2019 14:05 akawaguc

Compile un archivo Java para generar una clase:

javac filename.java

Ejecute la clase generada:

java filename
Paresh3489227 avatar Apr 11 '2014 12:04 Paresh3489227

En caso de que su clase Java esté en algún paquete. Supongamos que su clase Java nombrada ABC.javaestá presente en com.hello.programs, luego debe ejecutarla con el nombre del paquete.

Compílelo de la forma habitual:

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

Pero para ejecutarlo, debes proporcionar el nombre del paquete y luego el nombre de tu clase Java:

C:\SimpleJavaProject\src > java com.hello.programs.ABC
Harshad Holkar avatar Jul 28 '2016 14:07 Harshad Holkar