如何修复/解决java.lang.reflect.InvocationTargetException
我有一个关于一个特别恼人的错误的问题,我无法弄清楚,更不用说克服了。 每当我尝试在我的网站上运行Java applet(Applet或JApplet)时,我都会将此错误视为弹出窗口:
java.lang.reflect.InvocationTargetException
没有堆栈跟踪,没有行号,只是错误消息。 所以我用谷歌搜索其他任何人的解决方法(或理想的实际修复)但却找不到多少。 我已经尝试过我的代码的几种变体(有时候有一个JAR文件,有时候没有,有时是一个单独的类,有时候没有,有时候在一个包中使用匹配的目录结构,有时候没有包等等)但似乎无法越过这个讨厌的小儿子的臭虫。 🙂
举一个具体的例子,这是我最近的尝试; 首先是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代码:
Experimenting with Java applets I wish. :)
我想也许是因为网络本身可以有很多变量(操作系统,浏览器类型等),有一些内部/系统级导致这种情况…但我确实在我的计算机上安装了JRE和JDK,所以我真的不明白为什么……无论如何,我确定我不是第一个遇到这个障碍的人,但它让我难过,所以我很欣赏这个主题可能提供的任何信息。 此外,如果您知道任何优秀的Java网络教程,绝对新手也会很棒。 🙂
抛出InvocationTargetException
1是因为HTML正在调用(尝试加载) 不是 applet的东西。 将其更改为:
另外,正如Stephen C的回答中提到的那样。 将构造函数中的东西移动到init()
方法中。
InvocationTargetException
是一个已检查的exception,它包装被调用的方法或构造函数抛出的exception 。
确保将Java控制台配置为针对applet和JWS应用程序显示。 如果默认级别没有输出,请将其抬起并重试。
我在这里:为什么要编写applet? 如果是由于规格。 请教老师, 为什么CS老师应该停止教Java小程序 。
我建议您阅读Oracle Applet开发教程 。 我不是applets的专家(轻描淡写!)但你似乎做了很多不同的事情,就像教程说的那样。 例如,你不使用main
方法来启动applet,你应该在init
方法而不是构造函数中进行设置(参见这里 )。
- 没有静态方法zzb – 当用户firebase-database和facebook帐户工具包时
- HttpComponents PoolingHttpClientConnectionManager maxPerRoute和maxTotal?
- Maven / Java8 build中的编译错误:找不到符号JSObject.getWindow
- KeyListener事件显然没有在java applet中触发
- Java:将URL中的pdf文件读取到applet中的Byte数组/ ByteBuffer中
- Applet生命周期:init()和start()以及destroy()和stop()之间的实际区别是什么?
- 使用applet加载.DLL并在客户端上使用它
- JSESSIONID存储在哪里? (JavaEE的)
- java.io.IOException:无效的密钥库格式
- 我们什么时候得到java.lang.NoSuchMethodError,即使jar /类有特定的方法
- Java 1.7.0_u25 Applet使用eclipse进行调试