编辑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);
}
}
这是我的项目布局。
我已经使用Eclipse导出了jar,我的印象是这意味着它已经被正确签名了,但如果不是这种情况并且它引起了问题,那我就说了感谢被指向正确的方向(我确实使用JDK而不是JRE设置了eclipse)。
答案 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>
尽管如此,我确实在这里得到了一些有用的建议。谢谢大家。