簡體   English   中英

java applets中的ClassNotFoundException?

[英]ClassNotFoundException in java applets?

我的小程序出現了問題,我已經堅持了幾個小時。 我做了一個簡單的計算器小程序,可以在日食中正常運行。 我還制作了一個簡單的html文檔(為了使它正常工作,您對其進行了多次更改,可以想象得到),該文檔包含了我的計算器applet。 問題是,每當我在HTML文檔上點擊“用firefox打開”時,都會出現以下錯誤:

現在,我知道這個問題以前已經在互聯網上出現過,但是我已經在這么多個論壇中搜索了很多小時,但是我仍然沒有弄清楚。

為了解決這個問題,我做了很多嘗試。

我已經嘗試啟用heck Use SSL 2.0 Compatible ClientHello格式。

我嘗試通過以下方法來清理Java緩存:轉到Java控制面板,單擊Internet臨時文件下的設置,然后單擊刪除文件。 這些事情都沒有做任何事情。

我還嘗試將最初在eclipse中的java類保存到記事本中的.java中,然后將其和applet放到同一目錄中,這同樣不起作用。

現在,與之前的嘗試移動.java文件的方式不同,我將.html文件移動到了我所有代碼所在的src文件夾中,如以下屏幕快照所示:

該目錄在我的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中顯示小程序的反饋。 很高興收到您的來信,非常感謝。

使用命令提示符與APPLETVIEWER編輯

我可以將其與appletviewer一起使用,但是我要做的全部目的是查看所有真正的html和所有內容(在像firefox這樣的真實瀏覽器中)的外觀。 相反,我得到的結果與僅在Eclipse中運行時得到的結果相同。

在此處輸入圖片說明

非常感謝MadProgrammer幫助我找出答案,並避免了我浪費10多個小時! 這是我所做的:我需要在我的標簽中添加一個codebase = file:// linkatbrowserbar。 在添加文件:// blah / blah / blah之后,我遇到了一個安全彈出窗口,說我的安全性不允許該applet。 然后,我進入了安全性的Java控制面板,並將file:// blah / blah / blah添加到了我可以傳遞給安全性的內容列表中。 然后,我通過瀏覽器將其打開,僅此而已! 有效!

還要注意,您首先需要在命令提示符下進行編譯,才能將其從.java轉換為.class。 然后,您可以執行所有這些步驟! :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM