Wie fix/workaround java.lang.reflektieren.InvocationTargetException
Ich habe eine Frage über einen besonders nervigen Fehler, dass ich nicht in der Lage, herauszufinden, viel weniger zu überwinden. Jedes mal, wenn ich versuchen, ein Java-applet (Applet oder JApplet) auf meiner website, ich bekomme diese Fehlermeldung als pop-up:
java.lang.reflect.InvocationTargetException
Keinen stack-trace, keine Nummer, nur die Fehlermeldung. Also ich habe Gegoogelt herum auf der Suche für jemand anderes die workarounds (oder im Idealfall tatsächliche fixes) aber nicht in der Lage viel zu finden. Ich habe versucht, verschiedene Variationen von meinem code (manchmal mit einer JAR-Datei, manchmal nicht, manchmal ist eine einzelne Klasse, manchmal nicht, manchmal in einem Paket mit einem passenden directory-Struktur, manchmal kein Paket, etc.) aber kann nicht scheinen, um Vergangenheit diese fiesen kleinen Sohn-von-a-bug. 🙂
Für ein konkretes Beispiel, hier ist meine jüngste Versuch, als erstes das Java-code:
package cmtoolbox;
public class CMToolbox {
public static void main(String[] args) {
MainApplet a = new MainApplet();
}
}
Dem Klasse es wird:
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);
}
}
Mein HTML-code:
<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>
Ich nehme an, vielleicht, weil das web selbst kann so viele Variablen (Betriebssysteme, browser-Typen, etc.) es gibt etwas intern/system-Ebene verursacht dieses... aber ich habe JRE und JDK installiert auf meinem computer, sodass ich nicht wirklich, warum... Jedenfalls, ich bin sicher, ich bin nicht der erste Mann, zu schlagen das Hindernis, aber es hat mich ratlos also ich würde schätzen alle Informationen, die verfügbar sein können auf das Thema. Auch wenn Sie wissen, jeder gute Java-web-tutorials für absolute noobs, die wäre toll als gut. 🙂
InformationsquelleAutor user2403876 | 2013-08-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
InvocationTargetException
1 wird ausgelöst, weil der HTML-Code aufrufen (versucht zu laden) etwas, das nicht ein applet. Ändern Sie es zu:Auch, wie erwähnt, in Antwort von Stephen C. Bewegen Sie die Sachen vom Konstruktor in die
init()
Methode.Gewährleisten Java Konsole - konfiguriert ist, um zu zeigen, für applets & Zeugen Jehovas-apps. Wenn es gibt keine Ausgabe auf der Standard-Ebene, erhöhen und versuchen Sie es erneut.
Während ich hier bin: Warum code ein applet? Wenn es aufgrund spec. durch Lehrer, bitte finden Sie zu Warum CS Lehrer sollten aufhören, Unterricht Java-applets.
Okay, ich sehe Ihren Punkt - ich habe oft gedacht applets waren grenzwertig obsolet machte (lol). Aber was wäre die alternative? Die meisten Java web-tutorials und Ressourcen, die ich gesehen habe, befassen sich mit applets; also, wenn Codierung applets ist so eine dumme Idee (und wieder bekomme ich Sie auf das), was gibt es sonst noch? Danke. 🙂
Auch das Projekt habe ich im Hinterkopf, war web-basiert, denn es würde die Nutzung einer gemeinsamen Datenbank unter users (Benutzer würde die log-in, add-info, etc). Aber das ist nicht das einzige Projekt, das ich im Sinn habe; ich dachte auch ein Spiel oder zwei, usw. So oder so wurde die Idee zu bekommen, in setzen meine Java-Programme auf dem web.
"freigegebene Datenbank unter users (Benutzer würde die log-in, add-info, etc)." Eine desktop-app. können ganz einfach eine Verbindung zu einer web-app. basierten front-end für eine DB. Wenn Sie wollen, starten Sie es über einen link " Sie konnte sich auf Java Web Start. 'Telefoniert nach Hause' auf dem gleichen server (für die DB-front-end) sein könnte sand-boxed.
"auch das denken ein Spiel oder zwei, etc." Wieder besser als ein free-floating-app. auf dem desktop, gestartet mit Zeugen Jehovas.
InformationsquelleAutor Andrew Thompson
Schlage ich vor, dass Sie die Oracle Applet-Entwicklung Tutorial. Ich bin kein Experte auf applets (Untertreibung!) aber Sie scheinen zu tun, eine Menge Dinge anders, wie das Tutorial zu tun, sagt Sie. Zum Beispiel, Sie verwenden nicht einen
main
Methode zum starten eines applet, und Sie sollten die Einstellungen in derinit
Methode nicht den Konstruktor (siehe hier).init
ist vorzuziehen, weil die Umgebung vielleicht nicht bereit sein, wenn der Konstruktor aufgerufen wird.InformationsquelleAutor Stephen C