java applets中的ClassNotFoundException?

时间:2015-09-23 02:34:14

标签: java html eclipse applet dir

我遇到了小程序的问题,我已经坚持了几个小时。我已经制作了一个简单的计算器applet,在eclipse中运行良好。我还制作了一个简单的html文档(我已经将它改变了很多次,你可以想象它努力使其工作),它包含了我的计算器applet。问题是,每当我在我的html文档上点击“用firefox打开”时,我都会收到以下错误:

现在,我知道这个问题之前已经出现在互联网上,但我已经在这么多论坛上搜索了这么多个小时,而且我还没有想出来。

我尝试了很多方法来解决这个问题。

我已经尝试启用heck使用SSL 2.0兼容ClientHello格式。

我尝试通过转到Java控制面板,单击Temporary Internet Files下的Settings并单击Delete Files来清理Java缓存。这些都没有做任何事情。

我还尝试将原来在eclipse中的java类保存到记事本中的.java中,然后将它和applet放在同一个目录中,同样没有做任何事情。

现在,我没有先前尝试移动.java文件,而是将.html文件移动到我所有代码所在的src文件夹中,如此屏幕截图所示:

This directory is in my workspace in src

此目录位于我的工作区src

这是我的html代码,其中包含了java代码:

<html>
<head>
<title> Hello </title>
</head>
<body>
<APPLET code = "myappletclass.java" width = "400" height = "100"
alt = "Not working"
>
</APPLET>
</body>
</html>

这是我的html代码,经过数百万次修改后,很有可能我已经尝试了不同的形式(即没有alt,或者用小写的APPLET ......)但我对所有建议完全开放

以下是与之相关的java代码:

import java.awt.*;
import javax.swing.*;

public class myappletclass extends JApplet {
 private double sum;

 public void init() { //started by the browser when the Java program   (myappletclass.class) is loaded and run by the browser. The programmer does not write a call to the init() method.

    double n1 = 0;
    double n2 = 0;
    boolean successone = false; //keeps try catch running
    while (!successone) {
        try {
            String fn = JOptionPane.showInputDialog("Enter first number:");  //Whatever they enter will be stored in string fn
            n1 = Double.parseDouble(fn);
             successone = true; //wont go through while loop because is true  now!

            sum += n1;
        }

        catch (Exception e) {
            JOptionPane.showMessageDialog(null, "ENTER A NUMBER", "Nu uh",  JOptionPane.WARNING_MESSAGE);

        }
    }
    boolean successtwo = false; //keeps try catch running
    while (!successtwo) {
        try {
            String sn = JOptionPane.showInputDialog("Enter second number:");      //Whatever they enter will be stored in string sn
            n2 = Double.parseDouble(sn);
            successtwo = true; //wont go through while loop because is true now!
            sum += n2;
        }

        catch (Exception e) {
            JOptionPane.showMessageDialog(null, "ENTER A NUMBER", "Nu uh",       JOptionPane.WARNING_MESSAGE);

        }
    }

}

public void paint(Graphics g) {
    super.paint(g); //call superclass of paint
    g.drawString("The sum is " + sum, 25, 25);
}
}

此时此刻,我迫切想知道这是如何运作的。再一次,我花了无数个小时来弄清楚如何做到这一点,所以我真的很感激你的建设性批评和关于如何用我的html文档在firefox中显示我的applet的反馈。我很高兴收到你的来信,非常感谢你。

使用APPLANDVIEWER使用COMMAND PROMPT编辑

我让它与appletviewer一起工作,但我这样做的全部意义在于看看它在像firefox这样的真实浏览器中的样子,以及我所有的HTML和所有内容。相反,我得到的结果与我在eclipse中运行时得到的结果相同。

enter image description here

1 个答案:

答案 0 :(得分:0)

非常感谢MadProgrammer帮助我找到答案,并防止我再浪费10个小时!这是我做的:我需要在我的标签中添加codebase = file:// linkatbrowserbar。添加文件后:// blah / blah / blah我遇到了一个安全弹出窗口,说我的安全性不允许这个applet。然后,我进入了安全性的java控制面板,并将file:// blah / blah / blah添加到我可以传递给安全性的事物列表中。然后我通过我的浏览器打开它,就是这样!它奏效了!

另请注意,您需要先在命令提示符下编译它,然后将其从.java转换为.class。然后你可以做所有这些步骤! :)