Lorsque j'exécute un programme java à partir d'une idée d'Intellij, j'ai remarqué qu'ils sont exécutés par réflexion par une classe appelée AppMain (à partir de idea_rt.jar).Exécuter des classes java sans utiliser la classe AppMain dans Intellij
IntelliJ spécifications produit:
IntelliJ IDEA (Community Edition) IC-145.184.1 Build # IC-145,184, construit le 1er Mars, 2016 JRE: 1.8.0_60-b27 x86
Pour exemple: si j'exécute le code ci-dessous,
public class Example{
public static void main(String[] args) {
throw new RuntimeException();
}
}
Voici le résultat dans lequel il y a 5 appels internes de AppMain
Exception à > sun.reflect.NativeMethodAccessorImpl.invoke0 (méthode native) à sun.reflect in thread "main" java.lang.RuntimeException à Example.main (Example.java:12). NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) à sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) à java.lang.reflect.Method.invoke (Method.java:497) à com.intellij .rt.execution.application.AppMain.main (AppMain.java:144)
Comme vous pouvez le voir ci-dessus toutes les informations de trace de la pile a 5 origine de l'information de trace de la pile supplémentaire de la classe AppMain de idea_rt.jar
est-il de toute façon à Java Run applcation de son IntelliJ IDE sans utiliser AppMain?
Pourquoi vous en souciez-vous? Vous pouvez toujours le faire fonctionner seul avec le JRE. Mais puisque vous utilisez IDEA, pourquoi diable seriez-vous même surpris que ce soit celui qui commence votre application? Essayez-vous de minimiser l'utilisation de la pile ou quoi (et si oui, pour quelle raison)? – Kayaman
Je stocke la trace de pile dans mon application, chaque fois que je prends la trace de la pile cela me donnerait 5 lignes supplémentaires ce qui est ennuyeux ... soit je dois les ignorer manuellement (qui lie le code à un seul IDE et plus tard effacez ce code).Donc, j'ai besoin d'un moyen de ne pas exécuter l'application Java dans IDEA sans utiliser AppMain Donc sur une note de côté: Lorsque je viens d'exécuter l'application avec la configuration de débogage, les informations supplémentaires ne sont pas affichées. – chebus
Pourquoi ne pas simplement examiner la pile et sauvegarder seulement les images à partir de 'Example.main()'? Votre approche de ce "problème" est assez mauvaise si vous tentez de le résoudre via l'IDE. – Kayaman