如何在jar文件中创建Frame / Applet应用程序?

时间:2012-01-15 13:13:00

标签: java html applet frame

我有一个示例代码App.java

import javax.swing.*;
import java.awt.*;

public class App extends JApplet
{
    public void init()
    {       
        getContentPane().add(new JLabel("App"));
    }   

    public static void main(String[] args)
    {
        JApplet aplet = new App();
        JFrame frame = new JFrame("App");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(aplet);
        frame.setSize(300,300);
        aplet.init();
        aplet.start();
        frame.setResizable(false);              
        frame.setVisible(true);
    }
}

我通过compile.bat

进行编译
@echo off
cls
del *.jar
javac *.java
jar cfe App.jar App *.class
del *.class

当我双击App.jar时,我看到一个带有文字的框架。这就是我想要的。

我怎样才能在html页面上显示它?

我尝试使用以下代码,但不起作用:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>App</title>
</head>
<body>
<center>
<h1>App</h1>
<applet codebase="classes" code="App.class" archive="App.jar
    width="300" height="300" " />
</center>
</body>
</html>

该页面显示Error. Click for details. 当我点击时,我看到:

load: class App.class not found.
java.lang.ClassNotFoundException: App.class
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Exception: java.lang.ClassNotFoundException: App.class

当我在html上发布App.class时,一切正常。我无法发帖App.jar。 我怎么能这样做,所以它既可以作为applet又可以作为框架使用?

1 个答案:

答案 0 :(得分:1)

我刚刚从html中删除了codebase="classes",一切正常:)。