错误:运行applet时出现ClassNotFoundException

时间:2015-03-04 14:33:07

标签: java applet classnotfoundexception

我正在尝试通过命令appletviewer filename.html启动applet 其中包含用于启动具有特定宽度和高度的applet的代码。 当我启动命令时,我收到以下错误:

java.lang.ClassNotFoundException: ”dnaapplet.class”
    at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:219)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:152)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:633)
    at sun.applet.AppletPanel.createApplet(AppletPanel.java:795)
    at sun.applet.AppletPanel.runLoader(AppletPanel.java:724)
    at sun.applet.AppletPanel.run(AppletPanel.java:380)
    at java.lang.Thread.run(Thread.java:745)

我控制了有关通过java -cp设置类路径的其他帖子,但我找不到解决方案。

html文件的代码如下:

<applet 
code=”dnaapplet.class” 
width="835" 
height="180" 

></applet

以下是applet的代码:

    import java.applet.Applet;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class main_class extends Applet {

    Label Lseq1=new Label("Sequenza 1:");
    Label Lseq2=new Label("Sequenza 2:");
    TextField textSeq1=new TextField(30);
    TextField textSeq2=new TextField(30);
    TextField field_diff=new TextField(10);
    TextField field_perc=new TextField(10);
    Button compute=new Button("Confronta");
    Button reset=new Button("Resetta");
    Label error_label=new Label("Messaggi:");
    TextField msg=new TextField(33);


    public void init() {

        //aggiunta degli oggetti all'applet
        add(Lseq1); 
        add(textSeq1);
        add(Lseq2);
        add(textSeq2);
        add(new Label("Differenze:"));
        add(field_diff);
        add(new Label("Uguali al:"));
        add(field_perc);
        add(compute);
        add(reset);
        compute.addActionListener(seqInserted);
        reset.addActionListener(click);
        add(error_label);
        add(msg);
        msg.setText("Inserire due sequenze di uguale lunghezza.");

    }

    ActionListener seqInserted=new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {

            //getta il testo dei due campi di testo
            String seq1=textSeq1.getText();
            String seq2=textSeq2.getText();
            int length1=seq1.length();
            int length2=seq2.length();

            /*il primo if verifica se le sequenze sono lunghe uguali, il secondo
            verifica se tutti i caratteri inseriti sono validi: se vengono superati 
            entrambi i controlli, si passa alla computazione delle differenze*/

            if (length1==length2) {

                //if che controlla se i caratteri inseriti sono validi e chiama
                //le relative funzioni
                if ((main_class.checkInput(seq1, seq2, length1))==1) {

                    //chiamata delle funzioni di svolgimento dei calcoli
                    int diff=main_class.confrontoSequenze(seq1, seq2, length1);
                    field_diff.setText(""+diff);
                    field_perc.setText(""+main_class.percentuale(diff, length1)+"%");

                //almeno un carattere non è valido
                } else {
                    msg.setText("Carattere inserito non valido");
                    textSeq1.setText("");
                    textSeq2.setText("");
                    field_diff.setText("");
                    field_perc.setText("");
                }

            //questo else si apre quando le stringhe sono di lunghezza diversa
            } else {
                textSeq1.setText("");
                textSeq2.setText("");
                field_diff.setText("");
                field_perc.setText("");
                msg.setText("Errore:lunghezza sequenze diversa.");
                }
            }   
        };  

    //gestore del click del reset button
    ActionListener click=new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent arg0) {
            textSeq1.setText("");
            textSeq2.setText("");
            field_diff.setText("");
            field_perc.setText("");
            msg.setText("");
            }       
    };

}


    /*funzione che restituisce 0 almeno un carattere non è valido,
    1 se tutti i caratteri sono validi*/

    public static int checkInput(String seq1,String seq2, int length ) {

        int check1=1;
        int check2=1;
        int total_check=1;

        for (int i=0; i<=length-1; i++) {
            if (seq1.charAt(i)!='a' && seq1.charAt(i)!='A' && seq1.charAt(i)!='c' && seq1.charAt(i)!='C' && seq1.charAt(i)!='g' && seq1.charAt(i)!='G' && seq1.charAt(i)!='t' && seq1.charAt(i)!='T')
                check1=0;
        }


        for (int i=0; i<=length-1; i++) {
            if (seq2.charAt(i)!='a' && seq2.charAt(i)!='A' && seq2.charAt(i)!='c' && seq2.charAt(i)!='C' && seq2.charAt(i)!='g' && seq2.charAt(i)!='G' && seq2.charAt(i)!='t' && seq2.charAt(i)!='T')
                check2=0;
        }

        if (check1==0 || check2==0)
            total_check=0;

        return total_check;

    }


    public static int confrontoSequenze (String seq1, String seq2,int lenght) {

        int eq=0;
        int diff=0;

        for (int i=0; i<=lenght-1; i++) {

            //controlla se le stringhe sono uguali
            if (seq1.charAt(i)==seq2.charAt(i)) 
                eq++;
            else {
                diff++;
            }
        }
        return diff;
    }

    public static float percentuale(int diff, int lenght) {

        float perc;
        int eq=lenght-diff;

        perc=(eq*100)/lenght;
        return perc;
    }
}

这是我的第一个小程序,所以也许我的代码并不完美。评论和字符串都是意大利语,对不起。这个小程序扩展了我去年用Java制作的程序,比较了两个DNA序列,并返回它们的相似程度。

0 个答案:

没有答案