我有一个关于一个特别烦人的错误的问题,我一直无法弄清楚,更不用说克服了。每当我尝试在我的网站上运行 Java 小程序(Applet 或 JApplet)时,都会弹出此错误消息:
java.lang.reflect.InvocationTargetException
没有堆栈跟踪,没有行号,只有错误消息。因此,我在 Google 上四处寻找其他人的解决方法(或理想情况下的实际修复),但找不到太多。我已经尝试了我的代码的几种变体(有时使用 JAR 文件,有时不使用,有时使用单个类,有时不使用,有时在使用匹配目录结构的包中,有时不使用包等)但似乎无法摆脱这个讨厌的小 bug 。 :)
举个具体的例子,这是我最近的尝试;首先是 Java 代码:
package cmtoolbox;
public class CMToolbox {
public static void main(String[] args) {
MainApplet a = new MainApplet();
}
}
它设置的类:
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);
}
}
我的 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>
我想这可能是因为网络本身可能有太多变量(操作系统、浏览器类型等),内部/系统级的东西导致了这个……但我确实在我的电脑上安装了 JRE 和 JDK计算机所以我真的不明白为什么......无论如何,我确定我不是第一个遇到这个障碍的人,但它让我感到难过所以我很感激任何关于这个主题的信息。此外,如果您知道任何适合绝对菜鸟的 Java Web 教程,那也很棒。 :)
最佳答案
InvocationTargetException
1 被抛出是因为 HTML 正在调用(尝试加载)不是 applet 的东西。将其更改为:
<p><applet code="MainApplet" width="800" width="600">
</applet></p>
此外,如 answer of Stephen C 中所述.将构造函数中的内容移至 init()
方法中。
InvocationTargetException
is a checked exception that wraps an exception thrown by an invoked method or constructor.
确保 Java Console配置为显示小程序和 JWS 应用程序。如果在默认级别没有输出,请提高它并重试。
当我在这里时:为什么要编写一个小程序?如果是由于规范。老师请引用Why CS teachers should stop teaching Java applets .
关于java - 如何修复/解决 java.lang.reflect.InvocationTargetException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18285290/