¿Cómo ejecuto un programa Java desde la línea de comandos en Windows?
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)?
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!
Para completar la respuesta:
El archivo Java
TheJavaFile.java
Compile el archivo Java en un archivo *.class
javac TheJavaFile.java
- Esto creará un
TheJavaFile.class
archivo
- Esto creará un
Ejecución del archivo Java
java TheJavaFile
Creación de un
*.jar
archivo ejecutableTienes dos opciones aquí:
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
Ejecutable por punto de entrada:
jar -cvfe TheJavaFile.jar <MainClass> TheJavaFile.class
Para ejecutar el archivo Jar
java -jar TheJavaFile.jar
Desde Java 11, java
la 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
Compile un archivo Java para generar una clase:
javac filename.java
Ejecute la clase generada:
java filename
En caso de que su clase Java esté en algún paquete. Supongamos que su clase Java nombrada ABC.java
está 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