La mayoría de los sitios web en internet dicen:
"use el
javaccomando para compilar un.javaarchivo. Luego ejecútelo usando eljavacomando"
Pero hoy intenté ejecutar un programa Java sin javacy 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 javaccomando, se ejecutó sin ningún error.
$ java hello.java
hello world
¿El javacomando también compila el programa? En caso afirmativo, ¿por qué necesitamos el javaccomando?
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.javay luego desde la línea de comandos compílelo así javac Myclass.javay luego ejecútelo así java Myclass.
javactodaví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 javaopción para el archivo fuente: solo se usa para iniciar un solo programa de archivo fuente)
javaccompila la fuente de Java en el código de bytes interpretado específico de JVM y el javacomando lo carga dentro del ClassLoader de JVM.