Comment corriger/solution de contournement java.lang.de réfléchir.InvocationTargetException
J'ai une question à propos d'un particulièrement gênant d'erreur que je n'ai pas été en mesure de comprendre, et encore moins le surmonter. Tout le temps j'essaie d'exécuter une applet Java (Applet ou JApplet) sur mon site, j'obtiens cette erreur comme un pop-up:
java.lang.reflect.InvocationTargetException
Pas de trace de pile, pas de numéro de ligne, juste le message d'erreur. J'ai donc Googlé autour de la recherche pour quelqu'un d'autre solutions de contournement (ou, idéalement, d'réelle de bugs) mais n'ont pas été en mesure de trouver beaucoup. J'ai essayé plusieurs variantes de mon code (parfois avec un fichier JAR, parfois pas, parfois une seule classe, parfois pas, parfois dans un package à l'aide d'un répertoire correspondant à la structure, parfois, pas de colis, etc.) mais n'arrive pas à passer ce vilain petit-fils-de-a-bug. 🙂
Pour un exemple précis, voici ma plus récente tentative; d'abord le code Java:
package cmtoolbox;
public class CMToolbox {
public static void main(String[] args) {
MainApplet a = new MainApplet();
}
}
La classe, elle met en place:
package cmtoolbox;
import javax.swing.JApplet;
import javax.swing.JButton;
public class MainApplet extends JApplet {
public MainApplet() {
JApplet main = new JApplet();
main.setSize(800,600);
JButton test1 = new JButton();
test1.setText("Test");
main.add(test1);
}
}
Mon code HTML:
<html>
<head>
<title> Experimenting with Java applets </title>
</head>
<body>
<p><applet code="CMToolbox.class" width="800" width="600">
I wish. :)
</applet></p>
</body>
</html>
Je suppose que, peut-être parce que le web lui-même peut avoir un grand nombre de variables (systèmes d'exploitation, les types de navigateur, etc.) il y a quelque chose d'interne/système de niveau à l'origine de ce... mais j'ai la JRE et JDK installé sur mon ordinateur donc je ne pas vraiment pourquoi... de toute façon, je suis sûr que je ne suis pas le premier mec à frapper ce barrage, mais il m'a bloqué donc je te remercie de toutes les informations disponibles sur le sujet. Aussi, si vous connaissez des bonnes Java web tutoriels absolue pour les noobs qui serait très bien aussi. 🙂
OriginalL'auteur user2403876 | 2013-08-17
Vous devez vous connecter pour publier un commentaire.
InvocationTargetException
1 est jeté parce que le HTML est de l'appeler (en essayant de charger) quelque chose qui est pas une applet. Modifier:Aussi, comme mentionné dans le réponse de Stephen C. Déplacer les trucs du constructeur dans le
init()
méthode.Assurer la La Console Java est configuré de manière à afficher pour les applets & JWS apps. Si il n'y a pas de sortie au niveau par défaut, le relever et essayer de nouveau.
Alors que je suis ici: Pourquoi le code d'une applet? Si elle est due à la spec. par l'enseignant, veuillez vous référer à Pourquoi CS les enseignants devraient arrêter d'enseigner des applets Java.
Ok, je vois votre point de vue - j'ai souvent pensé que les applets ont été à la limite de toute façon obsolète (lol). Mais quelle serait l'alternative? La plupart des Java web de tutoriels et de ressources que j'ai vu traiter avec les applets; donc, si le codage des applets est une idée stupide (et encore je obtenir de vous sur ce point), quoi d'autre est là? Merci. 🙂
Bien le projet que j'ai en tête allait être basé sur le web, car elle permettrait d'utiliser une base de données partagée entre les utilisateurs (utilisateurs de se connecter, ajouter des informations, etc). Mais ce n'est pas le seul projet que j'ai en tête; je pensais aussi à un jeu ou deux, etc. De toute façon l'idée est de mettre mes programmes Java sur le web.
"base de données partagée entre les utilisateurs (utilisateurs de se connecter, ajouter des informations, etc)." Une application de bureau. pouvez facilement vous connecter à une application web. en fonction avant la fin de la bd. Si vous voulez le lancer à partir d'un lien " vous pourriez regarder pour Java Web Start. 'Téléphoner à la maison" pour le même serveur (pour la bd avant la fin de l') pourrait être de sable en boîte.
"aussi penser à un jeu ou deux, etc." Encore mieux comme un flottement libre app. sur le bureau, lancé à l'aide de témoins de jéhovah.
OriginalL'auteur Andrew Thompson
Je vous suggère de lire l'Oracle Développement Applet Tutoriel. Je ne suis pas un expert sur les applets (euphémisme!) mais vous avez l'air de faire beaucoup de choses différemment de la façon dont le Tutoriel a dit de le faire. Par exemple, vous n'utilisez pas un
main
méthode pour lancer une applet, et vous devriez être en train de faire l'installation dans leinit
méthode qui n'est pas le constructeur (voir ici).init
est préférable, car l'environnement ne peut pas être prêt lorsque le constructeur est appelé.OriginalL'auteur Stephen C