Мне тяжело заставить Java-апплет работать в Chrome. Загрузчик классов не может найти класс, хотя он отлично работает в Firefox, Opera и Safari.
Вот мой класс тестового апплета (я даже вынул объявление пакета, чтобы сделать его простым):
import java.awt.Graphics;
import java.applet.Applet;
public class Test extends Applet
{
public void init() { repaint(); }
public void paint( Graphics g ) {
g.drawOval(10, 10, 30, 50);
g.drawLine(15, 30, 22, 32);
g.fillOval(28, 28, 7, 5);
g.drawArc(15, 20, 20, 35, 210, 120);
}
}
Вот минималистичная тестовая страница:
<!doctype html>
<html><head>
<meta charset="utf-8"/>
<title>Test</title>
</head><body>
<p>
<object type="application/x-java-applet" width="50" height="70">
<param name="code" value="Test" />
Test failed.
</object>
</p>
</body></html>
Вот трассировка стека:
java.lang.ClassNotFoundException: Test
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:252)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:250)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:180)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:161)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:687)
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3046)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1498)
at java.lang.Thread.run(Thread.java:680)
Я скомпилировал класс с помощью javac Test.java
и поместил файл .class в ту же папку, что и файл .html. Опять же, это нормально работает как в Firefox, Safari и Opera, так почему бы не в Chrome?
Я пытался создать банку и добавить <param name="archive" value="Test.jar" />
, но это не помогло.
Да, и пока я спрашиваю: есть ли официальная спецификация, перечисляющая параметры <param>
, которые можно использовать с апплетами в тегах <object>
? Этого нет в спецификации HTML5, что имеет смысл, но Oracle предпочитает старый заброшенный тег <applet>
, и мне нужно использовать строгий HTML5.
Окружающая среда
MacBook Pro под управлением OS X 10.7.1
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-383-11A511)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-383, mixed mode)
Google Chrome 13.0.782.220