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


Estoy tratando de 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 de otro entorno (pensé que JVM era escribir una vez, ejecutar en cualquier lugar)?

 174
Author: Bob Jarvis, 2013-04-22

10 answers

Fuente: javaindos.

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

Ejecutar Símbolo del sistema

C:\> cd \mywork

Esto hace C:\mywork el directorio actual.

C:\mywork> dir

Esto muestra el contenido del directorio. Deberías ver 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 sistema pedir...

C:\mywork> dir

Javac ha creado el nombre de archivo aquí.archivo de clase. Deberías ver nombre del archivo aquí.java y nombre de archivo aquí.clase entre los archivos.

C:\mywork> java filenamehere

Esto ejecuta el intérprete Java. A continuación, debe ver su programa salida.

Si el sistema no puede encontrar javac, compruebe el comando set path. If javac se ejecuta pero obtienes errores, revisa tu texto Java. Si el programa compila pero se obtiene una excepción, comprobar la ortografía y mayúsculas en el nombre del archivo y el nombre de la clase y el java Comando HelloWorld. Java es sensible a mayúsculas y minúsculas!

 194
Author: Nicholas Kadaeux,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-02 10:26:24

Para completar la respuesta:

  1. El archivo Java

    TheJavaFile.java
    
  2. Compile el archivo Java a un *.class file

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

    java TheJavaFile
    
  4. Creación de un archivo ejecutable *.jar

    • Tienes dos opciones aquí -

      1. Con un archivo de manifiesto externo:

        • Crear el archivo de manifiesto - MANIFESTAR.mf

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

        • 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
    
 91
Author: 2324,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-15 14:12:45

Complile un archivo Java para generar una clase:

javac filename.java

Ejecutar la clase generada:

java filename
 15
Author: Paresh3489227,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-20 16:20:35

En caso de que su clase Java esté en algún paquete. Supongamos que su clase Java llamada ABC.java está presente en com.hello.programs, entonces necesita ejecutarla con el nombre del paquete.

Compilar de la manera habitual:

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

Pero para ejecutarlo, necesita dar el nombre del paquete y luego el nombre de la clase java:

C:\SimpleJavaProject\src > java com.hello.programs.ABC
 11
Author: Harshad Holkar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-20 16:23:35

Es fácil. Si ha guardado su archivo como A. text lo primero que debe hacer es guardarlo como A.java. Ahora es un archivo Java.

Ahora necesita abrir cmd y establecer la ruta para usted A.java archivo antes de compilarlo. puedes referirte a esto para eso.

Entonces puedes compilar tu archivo usando el comando

Javac A.java

Luego ejecútelo usando

Java A

Así es como se compila y ejecuta un programa java en cmd. También puedes ir a través de estos material que es Java en lecciones de profundidad. Muchas cosas que necesitas entender en Java están cubiertas allí para principiantes.

 8
Author: Eliza Helena,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-03 11:48:20

Puede compilar cualquier fuente java usando javac en la línea de comandos ; por ejemplo, javac CopyFile.Java. Para ejecutar: java CopyFile. También puede compilar todos los archivos java usando javac *.java siempre y cuando estén en el mismo directorio

Si tiene un problema que resulta con "no se pudo encontrar o cargar la clase principal", es posible que no tenga jre en tu camino. Echa un vistazo a esta pregunta: No se pudo encontrar o cargar la clase principal

 6
Author: monika,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:34:41

Asumiendo que el archivo se llama "CopyFile.java", haga lo siguiente:

javac CopyFile.java
java -cp . CopyFile

La primera línea compila el código fuente en código de bytes ejecutable. La segunda línea lo ejecuta, primero agregando el directorio actual a la ruta de la clase (por si acaso).

 6
Author: YakovK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-31 21:03:29

En Windows 7 tuve que hacer lo siguiente:

Vía rápida

  1. Instalar JDK http://www.oracle.com/technetwork/java/javase/downloads
  2. en Windows, navegar en "C:\Program Files\Java\jdk1.8.0_91\bin" (o donde se instale la última versión de JDK), mantenga pulsada la tecla mayús y haga clic derecho en un área en blanco dentro de la ventana y haga "abrir ventana de comandos aquí" y esto le dará una línea de comandos y acceso a todas las herramientas de BIN. "javac" no es por valor predeterminado en la variable de entorno RUTA del sistema de Windows.
  3. Siga los comentarios anteriores sobre cómo compilar el archivo ("javac MyFile.java "then" java MyFile") https://stackoverflow.com/a/33149828/194872

Largo camino

  1. Instalar JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. Después de instalar, en edita la variable de entorno Windows PATH y agrega lo siguiente a la ruta C:\ProgramData\Oracle\Java\javapath. Dentro de esta carpeta hay enlaces simbólicos a un puñado de ejecutables java pero "javac" NO es uno de ellos por lo que al intentar ejecutar "javac" desde la línea de comandos de Windows se lanza un error.
  3. Edité la ruta: Panel de control -> Sistema -> Pestaña Avanzada -> "Variables de entorno..."button - > scroll down to "Path", highlight and edit - > replaced the "C:\ProgramData\Oracle\Java\javapath" con una ruta directa a la carpeta java BIN "C:\Program Files \ Java\jdk1.8.0_91\bin".
  4. Es probable que esto se rompa cuando actualice su instalación de JDK, pero ahora tiene acceso a todas las herramientas de línea de comandos.

  5. Siga los comentarios anteriores sobre cómo compilar el archivo ("javac MyFile.java "then" java MyFile") https://stackoverflow.com/a/33149828/194872

 4
Author: Chris Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:47:28

introduzca la descripción de la imagen aquí PASO 1: PRIMERO ABRA EL SÍMBOLO DEL SISTEMA DONDE SE ENCUENTRA SU ARCHIVO. (haga clic derecho mientras presiona shift)
PASO 2: A CONTINUACIÓN, UTILICE LOS SIGUIENTES COMANDOS PARA EJECUTAR. (digamos que el nombre del archivo y de la clase a ejecutar se llama Student.java) El programa de ejemplo está en el fondo de la imagen.

     javac Student.java
     java Student

introduzca la descripción de la imagen aquí

 1
Author: Ashwant Manikoth,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-12 04:20:29

No es necesario usar la línea de comandos para editar la ruta. Tengo la misma pregunta y establecí el camino siguiendo este video de Youtube. https://www.youtube.com/watch?v=vhBNV8no4CI

 -1
Author: Luo Lei,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-07 03:54:13