部署JApplet:ClassNotFoundException

时间:2014-12-27 12:06:20

标签: java eclipse wordpress swing japplet

编辑2:我在根目录中创建了一个html并将jar文件放在同一个地方,然后我可以运行applet(虽然我有一些自签名安全问题)。这告诉我问题出在applet代码中。如果我可以删除正确运行的codebase属性,为什么它找不到该类的任何想法?

编辑1:我更新了入口点以删除框架。我还使用HelloWorld applet进行了测试,但仍然收到了同样的错误。


我对Java很新,所以我会尽可能清楚地解释我的问题,并提供大量详细信息。如果我错过了什么请告诉我。我也知道这个问题在这里经常被问到,我做了相当多的研究,发现了相互矛盾的反应,没有任何效果。

我在eclipse中开发了一个JApplet,为项目导出了一个jar文件,并尝试在我的网站上部署它。但是,当我尝试在线查看applet时,我收到错误:ClassNotFoundException。值得一提的是,我正在尝试通过wordpress部署这个JApplet。

以下是我用于部署的HTML代码:

<applet code = 'gui.ConverterGUI.class' 
    codebase = 'http://www.myurl.co.uk/Java/'
    archive = 'AConverter.jar'
    width = 800
    height = 600>
    <param name="permissions" value="all-permissions" />
</applet>

我的applet有一些软件包和类,我认为我已经正确设置和导出,但是这会导致问题,这是我的主要切入点:

public class ConverterGUI extends JApplet {
// Current program ver.
public static final double VERSION = 0.0;


public void init() {
    // Make it look nicer.
    try {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch(Exception e) {
        e.printStackTrace();
    }



    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            createAndShowGUI();
        }
    });
}


    private void createAndShowGUI() {
        System.out.println("Created GUI on EDT? "+
                SwingUtilities.isEventDispatchThread());

        //JFrame f = new JFrame("Converter GUI");
        ResultDisplay resultDisplay = new ResultDisplay();
        getContentPane().add(resultDisplay, BorderLayout.CENTER);
        getContentPane().add(new InputFields(resultDisplay), BorderLayout.NORTH);
    }
}

My project package set-up

这是我的项目布局。

我已经使用Eclipse导出了jar,我的印象是这意味着它已经被正确签名了,但如果不是这种情况并且它引起了问题,那我就说了感谢被指向正确的方向(我确实使用JDK而不是JRE设置了eclipse)。

1 个答案:

答案 0 :(得分:0)

问题在于html代码和wordpress解释它的方式。为了将来参考,我通过删除html代码中的行并使用双引号来修复此问题,如下所示:

<applet code = "gui.ConverterGUI.class" codebase="http://www.myurl.co.uk/Java/" archive="AConverter.jar" width=800 height=600><param name="permissions" value="all-permissions" /></applet>

尽管如此,我确实在这里得到了一些有用的建议。谢谢大家。