La mayoría de los sitios web en internet dicen:
"use el
javac
comando para compilar un.java
archivo. Luego ejecútelo usando eljava
comando"
Pero hoy intenté ejecutar un programa Java sin javac
y obtuve un resultado extraño.
Aquí están los contenidos de un archivo llamado hello.java
:
public class Myclass {
public static void main(String[] args){
System.out.println("hello world");
}
}
Entonces corrí:
$ javac hello.java
Lo que me da este error:
hello.java:1: error: class Myclass is public, should be declared in a file named Myclass.java
public class Myclass {
^
1 error
Pero cuando lo ejecuto sin el javac
comando, se ejecutó sin ningún error.
$ java hello.java
hello world
¿El java
comando también compila el programa? En caso afirmativo, ¿por qué necesitamos el javac
comando?
La versión de mi java es:
openjdk version "12.0.2" 2019-07-16
OpenJDK Runtime Environment (build 12.0.2+10)
OpenJDK 64-Bit Server VM (build 12.0.2+10, mixed mode)
Myclass.java
y luego desde la línea de comandos compílelo así javac Myclass.java
y luego ejecútelo así java Myclass
.
javac
todavía se usa para compilar si no desea implementar el código fuente, o si tiene más de un archivo ( documentación de la java
opción para el archivo fuente: solo se usa para iniciar un solo programa de archivo fuente)
javac
compila la fuente de Java en el código de bytes interpretado específico de JVM y el java
comando lo carga dentro del ClassLoader de JVM.