OS:MacのOS X 10.7.3 クローム:19.0.1051.0カナリア のJava:32ビットおよびJavaの64ビット版のSE 6Javaアプレットはアプレットビューア、SafariとFirefoxで動作しますが、Chromeはない
ディレクトリ構造:
- page.html
- Test.jar
- META-INF
- M ANIFEST.MF
- SELF-SIG.SF
- SELF-SIG.DSA
- コム
- テスト
- tyilo
- テスト$ 1.class
- Test.class
- tyilo
- テスト
- META-INF
page.html:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Testing applet</title>
<style type="text/css">
</style>
<script type="application/javascript">
</script>
</head>
<body>
<object type="application/x-java-applet" height="300" width="550">
<param name="code" value="com.tyilo.Test.Test">
<param name="archive" value="Test.jar">
Applet failed to run. No Java plug-in was found.
</object>
</body>
</html>
Test.java:クロームで
package com.tyilo.Test;
import java.awt.Graphics;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.security.AccessControlException;
import javax.swing.JApplet;
public class Test extends JApplet
{
private static final long serialVersionUID = 1L;
public String text;
@Override
public void init()
{
text = "~/test.txt created successfully!";
try
{
FileWriter fstream = new FileWriter(System.getProperty("user.home") + "/test.txt");
BufferedWriter out = new BufferedWriter(fstream);
out.write("Testing123");
out.close();
}
catch(AccessControlException e)
{
text = "File permission error.";
}
catch(Exception e)
{
text = "Unknown error: " + e.getMessage();
}
}
@Override
public void paint(Graphics g)
{
g.drawString(text, 50, 30);
}
@Override
public void start()
{
//TODO
}
@Override
public void stop()
{
//TODO
}
@Override
public void destroy()
{
//TODO
}
}
Javaコンソールエラー:
load: class com.tyilo.Test.Test not found.
java.lang.ClassNotFoundException: com.tyilo.Test.Test
at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:252)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:249)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:179)
at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:160)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Plugin2ClassLoader.java:690)
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3045)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1497)
at java.lang.Thread.run(Thread.java:680)
Exception: java.lang.ClassNotFoundException: com.tyilo.Test.Test
このコードは、最新の安定版Chromeでうまく動作しているようです。そのため、カナリアンバージョンのバグである可能性があります。
編集2
ローカルHTML(とjar)を実行しているクロムの唯一の問題があります。
良い質問。 HTMLに空の 'スタイル'と 'スクリプト'構造があるのはなぜですか? –
@AndrewThompson私はhtmlテンプレートを使用していたので、それらにはhtmlテンプレートが含まれています。私は後でそれらを必要とするかもしれない... – Tyilo