2010-10-03 63 views
0

我在HelloWorld Applet遇到问题。Hello World,Java Applet,问题

这里是我的Java代码:

package webCrawler.applet2; 

import javax.swing.JApplet; 
import java.awt.Graphics; 

public class HappyFace extends JApplet 
{ 
    public void paint (Graphics canvas) 
    { 
     canvas.drawOval(100,50,200,200); 
     canvas.fillOval(155,100,10,20); 
     canvas.fillOval(230,100,10,20); 
     canvas.drawArc(150,160,100,50,0,180); 
    } 
} 

这里是我的index.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

<html> 
    <head> 
    </head> 
    <body bgcolor="000000"> 
     <center> 
      <applet 
       code = "HappyFace.class" 
       width = "500" 
       height = "300" 
       > 
      </applet> 
     </center> 
    </body> 
</html> 

在Eclipse中,如果我去:Run -> Run它的工作原理,但如果我这样做:

% pwd 
/Users/me/Documents/workspace/WebCentric/bin/webCrawler/applet2 
% ls 
HappyFace.class   index.html 
% open index.html 

它打开Firefox中的HTML页面,但该应用程序不起作用:

app not working

更新:

由于Pablo Santa Cruz suggested我:

  • 改变的index.html的位置
  • 更改的index.html是code = "webCrawler.applet2.HappyFace"

这是控制台中的例外。

java.lang.UnsupportedClassVersionError: webCrawler/applet2/HappyFace (Unsupported major.minor version 49.0) 
    at java.lang.ClassLoader.defineClass0(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:539) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123) 
    at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:213) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289) 
    at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:151) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235) 
    at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:680) 
    at sun.applet.AppletPanel.createApplet(AppletPanel.java:635) 
    at sun.plugin.AppletViewer.createApplet(AppletViewer.java:1991) 
    at jep.AppletFramePanel.createApplet(Unknown Source) 
    at sun.applet.AppletPanel.runLoader(AppletPanel.java:564) 
    at sun.applet.AppletPanel.run(AppletPanel.java:301) 
    at jep.AppletFramePanel.run(Unknown Source) 
    at java.lang.Thread.run(Thread.java:552) 

回答

2

applet标记你code属性,你应该使用FQN类:webCrawler.applet2.HappyFace(删除.class扩展还)。

此外,请确保您的.class文件位于相应的目录(包)结构中。在你的情况下,HTML文件应该在:

/Users/me/Documents/workspace/WebCentric/bin/ 

而且只有你HappyFace.class文件应:

/Users/me/Documents/workspace/WebCentric/bin/webCrawler/applet2 

此外,请记住,有一个Java控制台上浏览器(IE,Firefox,Chrome,Safari)你可以看看你在applet执行时遇到的错误。

UPDATE:

你的例外是说,你与Java较新版本的编译代码比JVM支持。 I.E.您使用的Java 编译器Eclipse中但你的Java浏览器插件仅Java 5的(你的JRE仅Java 5的)。

我会改变Eclipse中的项目设置,告诉它使用兼容的编译器(有一个选项),再次编译和部署Applet。它应该工作。

+0

将其更改为'code =“webCrawler.applet2.HappyFace”'但仍然没有骰子。 – sixtyfootersdude 2010-10-03 14:36:17

+0

您是否也按照我的建议移动了文件? – 2010-10-03 14:37:54

+0

是的,我做了,看我的更新。 – sixtyfootersdude 2010-10-03 14:54:14