69 votes

Fonctions principales multiples

Je suis un peu nouveau de cette sorte de garder avec moi. Je suis présentement en train d'apprendre le C# et le Java et l'un de leurs similitudes, c'est que la fonction principale doit être encapsulée dans une classe. Par exemple

public class HelloWorld {
    public static void main(String[] args) {
        // Some Code
    }
}

Maintenant, je comprends ce qui est souvent le "point d'entrée" lorsque vous exécutez le programme. Donc, fondamentalement, votre programme va commencer à exécuter partout où la fonction principale est. Mais je crois que dans les deux langues, vous pouvez avoir de multiples fonctions principales au sein de plusieurs classes. Alors, quand je compile un projet avec de multiples fonctions principales, où est le "point d'entrée"? Comment le compilateur de savoir par où commencer?

58voto

Code-Apprentice Points 18086

En Java, l’ordinateur détermine le "point d’entrée" lorsque vous exécutez le programme, pas lorsque vous compilez. Par exemple, à partir de la ligne de commande

 java MyClass
 

recherche main() en MyClass . Toutes les autres fonctions main() sont ignorées.

Si vous utilisez un environnement de développement intégré, vous pouvez définir quelle classe contient la fonction main() que vous souhaitez utiliser.

55voto

MStodd Points 2806

Dans .NET, vous pouvez définir quelle classe contient la méthode Main que vous souhaitez utiliser lors de la compilation.

http://msdn.microsoft.com/en-us/library/x3eht538.aspx

En Java, si vous associez un fichier jar, vous pouvez définir votre point d'entrée dans le manifeste du fichier jar.

http://docs.oracle.com/javase/tutorial/deployment/jar/appman.html

17voto

Anirudha Points 21931

En C#, vous pouvez utiliser plusieurs Main méthodes.

S'il y a plusieurs Main méthodes, le compilateur ne sait pas quel point d'entrée à l'utilisation, et donc il va vous montrer une erreur.

Vous êtes celui qui va spécifier l' Main méthode pour être utilisé lors de la compilation: Vous pouvez spécifier la méthode à être utilisé comme une option de compilation dans l'environnement de développement Visual Studio ou par le csc du compilateur.

12voto

CosmicComputer Points 1004

La classe principale est une classe spéciale pour une seule raison: lorsque vous exécutez une Machine Virtuelle Java, cette fonction est ce que la JVM des appels. C'est comme n'importe quelle autre fonction, et, en fait, vous pouvez appeler une classe principale fonction d'une autre classe.

Lorsque vous compilez un projet avec plusieurs classes, vous dites à la JVM pour exécuter la classe avec la classe principale que vous souhaitez utiliser, comme suit:

java SomeClass

et il va exécuter la méthode main de SomeClass, en supposant que SomeClass est compilé et que le fichier compilé est dans votre classpath. (C'est quelque chose que vous aurez à travailler avec votre OS, mais je pense que c'est assez habituel pour les cp option pour spécifier un chemin de classe). Donc ceci:

java -cp /home/MyName Someclass

va exécuter la fonction principale de SomeClass dans le répertoire /home/MyName

9voto

SetFreeByTruth Points 625

En C #, vous spécifiez le point d'entrée à l'aide de l'option de compilateur /main: .

Considérez le code suivant contenant deux fonctions main() :

 namespace Application {
    class ClassOne {
        static void main () {
            // Code here
        }
    }

    class ClassTwo {
        static void main () {
            // Code here
        }
    }
}
 

Pour utiliser ClassOne.main() comme point d’entrée, vous devez spécifier les éléments suivants lors de la compilation:

 csc /main:Application.ClassOne hello.cs
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X