Maison  >  Article  >  Java  >  Comment résoudre le problème que la méthode main n’est pas définie en Java ?

Comment résoudre le problème que la méthode main n’est pas définie en Java ?

WBOY
WBOYoriginal
2023-06-25 11:02:572805parcourir

En tant que langage de programmation orienté objet, Java nécessite un point d'entrée lors de l'exécution d'un programme, et ce point d'entrée est la méthode principale. Mais parfois nous rencontrons une situation où la méthode principale n’est pas définie, alors comment la résoudre ?

1. La méthode principale n'est pas définie

L'échec de la définition de la méthode principale peut être dû à des problèmes de modification du code ou d'importation du code d'autres personnes. À ce stade, nous pouvons utiliser la réflexion pour y faire face.

1. Utilisez la réflexion.

Reflection est un mécanisme de base du langage Java qui peut charger, exploiter et interroger des classes et des interfaces pendant l'exécution du programme. Avec la réflexion, vous n'avez pas besoin de connaître toutes les classes et interfaces au moment de la compilation. La machine virtuelle Java (JVM) n'a besoin de charger des classes et des interfaces que lorsque le programme est en cours d'exécution. Par conséquent, le mécanisme de réflexion permet aux programmes Java de charger et d'exploiter dynamiquement des classes et des interfaces au moment de l'exécution.

L'exemple de code est le suivant :

public class NoMainClass {

public void sayHello() {
    System.out.println("Hello");
}

}
public class Main {

public static void main(String[] args) throws IllegalAccessException, InstantiationException, NoSuchMethodException, InvocationTargetException {
    Class<?> clazz = Class.forName("NoMainClass");
    Object o = clazz.newInstance();
    Method method = clazz.getMethod("sayHello");
    method.invoke(o);
}
#🎜🎜 #}

Dans ce code, le programme charge dynamiquement une classe au moment de l'exécution, crée une instance de la classe via la méthode newInstance(), obtient dynamiquement la méthode de cette instance et l'appelle . Voici comment utiliser le mécanisme de réflexion pour charger dynamiquement une classe sans méthode principale et l'exécuter.

2. Utilisez le système de modules Java 9.

Lorsque nous devons utiliser le système de modules Java 9 pour résoudre le problème de la non-définition de la méthode principale, nous devons définir une classe principale dans le fichier de description du module. Par exemple, nous pouvons définir ce qui suit dans le fichier module-info.java :

module my.module {

requires other.module;
exports com.example;
provides service with com.example.MyServiceImpl;
main-class com.example.MyMain;

}

In this module Dans le fichier de description, nous spécifions le point d'entrée du programme en spécifiant main-class. Cela permet à la machine virtuelle Java de trouver la classe qui définit la méthode principale et de l'exécuter.

2. Résumé

Certains programmeurs Java peuvent rencontrer le problème de ne pas définir la méthode principale au travail ou aux études. À l'heure actuelle, nous pouvons utiliser la réflexion et le module Java 9. système Attendez que le mécanisme soit résolu. Cependant, il convient de noter que cette approche peut présenter des risques pour la sécurité, nous devons donc éviter autant que possible d'utiliser cette méthode. Lors de l'écriture du code, vous devez suivre les spécifications du langage Java et définir un point d'entrée clair du programme.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn