El archivo vacío es un archivo fuente Java válido, pero ¿cómo se maneja dentro de la JVM?El archivo vacío es un archivo fuente Java válido. ¿Cómo se maneja dentro de la JVM?
Respuesta
javac produce *.class
archivos para cada uno que ocurren en el archivo .java
. Entonces, ninguno de ellos, el compilador simplemente no hace nada. Nada le da a un jvm.
No existe una relación de uno a uno entre .java-files y .class-files. Lo que tiene es una relación de uno a uno entre clases (o clase-declaraciones) y .class-files.
Un archivo Java de código con cero de clase declaraciones no dará lugar a ningún .class
archivos, así que no es realmente manejado por la JVM en absoluto.
$ touch Test.java
$ ls
Test.java
$ javac Test.java
$ ls
Test.java
En la especificación del lenguaje Java un archivo Java de código es sinónimo de una Unidad de Recopilación . La sección relevante en el JLS es 7.3 Compilation Units.
La gramática se describe como sigue:
CompilationUnit:
PackageDeclaration opt ImportDeclarations opt TypeDeclarations opt
...
opt -subscript dice que la pieza es opcional. Como TypeDeclarations es opcional, no es necesario que existan declaraciones de clase.
Un archivo fuente vacío no creará ningún archivo de clase, por lo que no hay nada que pueda "manipular" la JVM. Y un archivo de clase vacío (que no es algo que el compilador creará) no es válido, lo que probablemente resulte en un ClassFormatError o algo así, si esa era su pregunta.
gracias chicos por las respuestas .. – srini
- 1. ¿Cómo ver el código fuente dentro de un archivo JAR?
- 2. ¿Cómo se cambia el tamaño de fuente y el color de fuente de un archivo Java?
- 3. es el comando "java" de la JVM?
- 4. JFileChooser elija el archivo vacío
- 5. ¿Cómo es correcto un archivo __init__.py vacío?
- 6. ¿Cómo se determina la ruta absoluta del archivo de un archivo fuente Java en el plugin de Eclipse?
- 7. ¿Cómo maneja MATLAB el cambio de archivo mientras se está ejecutando el archivo?
- 8. ¿El código fuente abierto es JVM?
- 9. ¿Cómo comprobar si un archivo es válido UTF-8?
- 10. ¿Cómo puedo determinar si un archivo es un archivo PDF?
- 11. cómo comprobar si el archivo pdb es válido para la depuración de un conjunto
- 12. Cómo importar un archivo .class en un archivo .java?
- 13. ¿Obtiene un objeto de archivo o URI para un archivo dentro de un archivo con Java?
- 14. ¿Cómo creo un archivo vacío en emacs?
- 15. Recortar/recortar un archivo JPG con espacio vacío con Java
- 16. ¿Cómo comprobar si un archivo .tar.gz de Unix es un archivo válido sin descomprimir?
- 17. ¿Cómo leer un archivo .properties dentro de un archivo .xsl?
- 18. ¿Cómo extraigo el código fuente de un archivo Jar?
- 19. ¿Cómo se maneja el evento cuando se hace clic en el espacio vacío?
- 20. Incluyendo un archivo .js dentro de un archivo .js
- 21. ¿Cómo maneja git el código de fusión que se movió a un archivo diferente?
- 22. ¿Qué ocurre si compila un archivo java vacío?
- 23. ¿Es OpenJDK JVM lo mismo que Oracle Java SE JVM?
- 24. Cómo ejecutar el archivo de la clase java dentro del archivo war
- 25. ¿Cómo se maneja si el parámetro de consulta es nulo o está vacío en hibernación?
- 26. å en el archivo xml es válido o no?
- 27. Comprobar si el descriptor de archivo es válido
- 28. Asegurarse de que el archivo se elimine en JVM exit
- 29. Java Desktop.open (archivo f) archivo de referencia dentro de JAR?
- 30. Cómo leer un archivo dentro de un Jar con JRuby
Vacié un archivo '.java' (que tenía un código fuente que daba como resultado un archivo' .class') y puse solo un comentario adentro (nada más que el comentario). Tan pronto como lo guardé en Eclipse, el archivo '.class' desapareció. Pensé que daría un error, pero no fue así. Gracias por esta explicación. * Cuanto más sepa:) * – ADTC