2012-01-15 78 views
1

我有一个示例代码App.java如何在jar文件中创建Frame/Applet应用程序?

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); 
    } 
} 

I,通过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 

当我发布App.class上的HTML,一切正常。我无法发布App.jar。 我该如何做到这一点,因此它可以作为一个小程序和框架?

回答

1

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