2012-02-25 2 views
1

ОС: Mac OS X 10.7.3 Chrome: 19.0.1051.0 канарейки Java: 32-разрядная и 64-разрядная версия Java SE 6Java апплет работает в AppletViewer, Safari и Firefox, но не Chrome

структура каталогов:

  • page.html
  • test.jar
    • META-INF
      • M ANIFEST.MF
      • SELF-SIG.SF
      • SELF-SIG.DSA
    • ком
      • tyilo
        • Тест
          • Тест $ 1.class
          • Test.class

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 

Редактировать Код, кажется, отлично работает в последней стабильной версии хрома, так что это может быть просто ошибкой в ​​канареечной версии.

Edit 2

Существует только проблема с хромом при запуске HTML (и банку) на местном уровне.

+0

Хороший вопрос. Почему в HTML существуют пустые структуры 'style' &' script'? –

+0

@AndrewThompson Потому что я использовал свой html-шаблон, который включает в себя те. Возможно, они мне понадобятся позже ... – Tyilo

ответ

0

Включить Java в хроме, чтобы сделать это, введите JavaScript: если (browser.value.getIndex ("хром") {chrome.browser. enableFeature (JApplet)}); в хром