【发布时间】:2014-07-21 18:19:18
【问题描述】:
我写了一个简单的 JApplet,我想在我的网站上运行它。我将它打包成一个 .jar 文件并在 html 上使用 applet 标记。这是我的html:
<html>
<applet code="main.class"
codebase="test/"
archive="tmp.jar"
width="600" height="95">
<param name="type" value="hello">
<param name="IP" value="127.0.0.1">
</html>
这是我的 main.java:
public class main extends JApplet{
public String str, IP;
public ImagePanel panel;
protected void loadAppletParameters(){
String at = getParameter("type");
str = (at != null) ? at : "world";
at = getParameter("IP");
IP = (at != null) ? at : "127.0.0.1";
}
public void init(){
loadAppletParameters();
System.out.println("hi: ");
panel = new ImagePanel();
this.add(panel);
}
public class ImagePanel extends JPanel{
private BufferedImage image;
public ImagePanel() {
try {
image = ImageIO.read(new File("img.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, null);
}
public void change_image(String path){
try {
image = ImageIO.read(new File(path));
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
但是当我打开 web 文件时它捕获了 ClassNotFoundException。请帮助或给我一些建议。非常感谢。
【问题讨论】:
-
您是否检查了 Java 控制台的详细错误信息?
-
我检查过了,没有错误。
-
您是否没有想到,HTML 和
tmp.jar的目录结构和位置对于解决这个问题很重要?请edit the question 包含该信息。顺便说一句 - 1)g.drawImage(image, 0, 0, null);应该是g.drawImage(image, 0, 0, this);,因为每个JComponent是一个ImageObserver。 2)image = ImageIO.read(new File("img.jpg"));applet 的资源需要加载为URL,而不是File。最好是相对于 HTML 或文档库中指定的codebase形成的URL。
标签: java html applet classnotfoundexception japplet