2010-10-16 19 views
6

Nel codice precedente quando viene utilizzato lo return, è necessario tornare alla funzione che chiama la funzione principale. Chi chiama esattamente la funzione main?Chi chiama la funzione principale in java?

+1

È possibile chiamare un metodo principale da un altro e chiamare il programma di avvio. –

risposta

10

Le classi Java sono eseguite all'interno di un contesto più ampio (una JVM particolare come altri hanno notato). Qui di seguito sono alcune possibilità:

In tutti i casi il metodo main() è il punto di ingresso canonico per l'esecuzione di codice assegnato a una particolare classe. Dalla documentazione sul java JVM:

DESCRIZIONE

Lo strumento java avvia un'applicazione Java. Fa ciò avviando un ambiente di runtime Java, caricando una classe specificata e richiamando il metodo principale di quella classe. La dichiarazione metodo deve essere simile al seguente:

public static void main(String args[]) 

Il metodo deve essere dichiarato pubblico e statico, non deve restituire alcun valore, e si deve accettare un array di stringhe come parametro. Per impostazione predefinita, il primo argomento non opzionale è il nome della classe da richiamare. Deve essere usato un nome di classe completo. Se viene specificata l'opzione -jar, il primo argomento non opzionale è il nome di un archivio JAR contenente i file di classe e di risorse per l'applicazione, con la classe di avvio indicata dall'intestazione manifest Main-Class.

Il runtime Java ricerca la classe di avvio e le altre classi utilizzate in tre gruppi di percorsi: il percorso della classe di avvio, le estensioni installate e il percorso della classe utente.

Gli argomenti senza opzioni dopo il nome della classe o il nome del file JAR vengono passati alla funzione principale.

Il comando javaw è identico a java, tranne che con javaw non è presente una finestra della console associata. Usa javaw quando non vuoi che appaia una finestra del prompt dei comandi. Tuttavia, il programma di avvio di javaw visualizzerà una finestra di dialogo con informazioni di errore se un lancio non riesce per qualche motivo.

È stato:

Nel codice precedente quando il ritorno è usata allora dovrebbe tornare alla funzione che chiama la funzione principale.

Non ci può essere qualsiasi altra funzione Java (in realtà di solito non è), che chiama la funzione main(). È la convenzione per la dichiarazione di un punto di ingresso noto. Se la JVM viene avviata per eseguire il metodo main() della tua classe, quando viene restituito il valore main(), la JVM viene chiusa, tranne in alcuni casi speciali, ad es. ci sono altri thread non daemon in esecuzione o c'è un hook di shutdown.

+0

La frase della mia dichiarazione manca della mia clausola di qualificazione: "tranne in alcuni casi speciali, ad esempio ci sono altri thread non daemon in esecuzione o c'è un hook di shutdown." che copre le tue preoccupazioni. –

17

La Java Virtual Machine.

0

La JVM utilizza il main() come punto di partenza per un programma proprio come il int main() in C++.

0

Accetto con le istruzioni precedenti poiché JVM chiama il metodo principale perché è il punto di ingresso a qualsiasi classe che deve essere caricata per eseguire la classe.

0

Jvm avvia il thread principale per chiamare il metodo principale.