У меня есть пример кода 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
Когда я публикую App.class
на html, все работает. Я не могу опубликовать App.jar
.
Как это сделать, чтобы он работал как в виде апплета, так и в качестве фрейма?