有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

web如何修复/解决java。朗,反思一下。调用目标异常

我有一个关于一个特别恼人的错误的问题,我没能弄明白,更不用说克服了。每当我试图在我的网站上运行Java小程序(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代码:

<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,所以我真的不明白为什么。。。不管怎样,我肯定我不是第一个遇到这个障碍的人,但这让我很难堪,所以我非常感谢任何关于这个主题的信息。此外,如果您知道任何关于绝对noobs的优秀Java web教程,也将非常棒。:)


共 (2) 个答案

  1. # 1 楼答案

    InvocationTargetException1被抛出,因为HTML正在调用(试图加载)不是小程序的东西。将其更改为:

      <p><applet code="MainApplet" width="800" width="600">
      </applet></p>
    

    此外,如answer of Stephen C中所述。将内容从构造函数移到init()方法中

    1. 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

  2. # 2 楼答案

    我建议你读一下甲骨文。我不是小程序专家(轻描淡写!)但你似乎做了很多不同于教程所说的去做的事情。例如,您不需要使用main方法来启动小程序,您应该在init方法而不是构造函数中进行设置(请参见here