que programacion programa para metodo invocar hay hacer ejecutar desde consola compilar como java

programacion - que metodo hay que invocar para ejecutar un programa en java



¿Cómo se puede ejecutar un programa Java sin el método principal? (4)

Posible duplicado:
Imprimir mensaje en la consola sin utilizar el método main ()

Alguien puede sugerir cómo se puede ejecutar un programa JAVA sin escribir un método principal .

Por ejemplo:

System.out.println("Main not required to print this");

¿Cómo se puede imprimir la línea anterior en la consola sin usar la página pública estática vacía (String arg []) en la clase?


Hasta JDK6, puede usar un bloque de inicializador estático para imprimir el mensaje. De esta manera, tan pronto como se cargue su clase, se imprimirá el mensaje. El truco entonces se convierte en usar otro programa para cargar tu clase.

public class Hello { static { System.out.println("Hello, World!"); } }

Por supuesto, puedes ejecutar el programa como java Hello y verás el mensaje; sin embargo, el comando también fallará con un mensaje que indique:

Excepción en el hilo "main" java.lang.NoSuchMethodError: main

[Editar] según lo indicado por otros, puede evitar el NoSuchmethodError simplemente llamando a System.exit(0) inmediatamente después de imprimir el mensaje.

A partir de JDK6 en adelante, ya no verá el mensaje del bloque inicializador static ; detalles aqui


Hasta e incluyendo Java 6 , fue posible hacerlo usando el Bloque de Inicialización Estática como se señaló en la pregunta Imprimiendo el mensaje en la consola sin usar el método main () . Por ejemplo utilizando el siguiente código:

public class Foo { static { System.out.println("Message"); System.exit(0); } }

El System.exit(0) permite que el programa salga antes de que la JVM busque el método main , de lo contrario se generará el siguiente error:

Excepción en el hilo "main" java.lang.NoSuchMethodError: main

En Java 7 , sin embargo, esto ya no funciona , aunque compila, aparecerá el siguiente error cuando intentes ejecutarlo:

El programa se compiló con éxito, pero no se encontró la clase principal. La clase principal debe contener el método: public static void main (String [] args).

Aquí una alternativa es escribir su propio lanzador, de esta manera usted puede definir los puntos de entrada que desee.

En el artículo JVM Launcher encontrará la información necesaria para comenzar:

Este artículo explica cómo podemos crear un Lanzador de máquina virtual Java (como java.exe o javaw.exe). Explora cómo la máquina virtual Java lanza una aplicación Java. Le brinda más ideas sobre el JDK o JRE que está utilizando. Este iniciador es muy útil en Cygwin (emulador de Linux) con la interfaz nativa de Java. Este artículo asume una comprensión básica de JNI.


Applets de lo que recuerdo no necesitan un método principal, aunque no estoy seguro de que técnicamente sean un programa.


public class X { static { System.out.println("Main not required to print this"); System.exit(0); }}

Ejecutar desde el cmdline con java X