¿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)?
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!
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:
-
El archivo Java
TheJavaFile.java
-
Compile el archivo Java a un *.class file
javac TheJavaFile.java
- Esto creará un archivo
TheJavaFile.class
- Esto creará un archivo
-
Ejecución del archivo Java
java TheJavaFile
-
Creación de un archivo ejecutable
*.jar
-
Tienes dos opciones aquí -
-
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
-
-
Ejecutable por Punto de entrada:
jar -cvfe TheJavaFile.jar <MainClass> TheJavaFile.class
-
-
-
Para ejecutar el archivo Jar
java -jar TheJavaFile.jar
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
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
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.
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
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).
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
- Instalar JDK http://www.oracle.com/technetwork/java/javase/downloads
- 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.
- Siga los comentarios anteriores sobre cómo compilar el archivo ("javac MyFile.java "then" java MyFile") https://stackoverflow.com/a/33149828/194872
Largo camino
- Instalar JDK http://www.oracle.com/technetwork/java/javase/downloads/index.html
- 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.
- 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".
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.
Siga los comentarios anteriores sobre cómo compilar el archivo ("javac MyFile.java "then" java MyFile") https://stackoverflow.com/a/33149828/194872
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
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
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
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