2011-04-08 78 views
1

在ubuntu上使用chrome,有一个基本的java applet和javascript交互。 JavaScript到Java进行得很好,但是当我尝试让java开发一个javascript方法时,chrome java插件崩溃。这一切在Fire Fox中都可以正常工作。在ubuntu上调用javascript函数时Java applet崩溃chrome java

的错误:

The following plug-in has crashed: icedTea NPR Web Browser Plugin (using IcedTea6 1.9.7 (6b20-1.9.7-0ubuntu1~10.04.1)) 

的HTML:

<object height='300' id='thisappletawesome' name='thisappletawesome'type='application/x-java-applet' width='550'> 
    <param name='classid' value='java:JSHelloWorld.class'> 
    <param name='codebase' value='/java/'> 
</object> 

的JavaScript:

function updateWebPage(){ 
    alert("java is touching me"); 
    document.thisappletawesome.setText("hihihi") 
} 

Java的:

import java.applet.*; 
import java.awt.*; 
import netscape.javascript.*; 
import javax.swing.*; 

public class JSHelloWorld extends JApplet { 
JTextArea txt = new JTextArea(100,100); 

public void init(){ 
    JSObject jso = JSObject.getWindow(this); 
    try { 
     jso.call("updateWebPage", new String[] {"Hihi"}); 
    } 
    catch (Exception ex) { 
     ex.printStackTrace(); 
    } 
} 

public JSHelloWorld() { 
    txt.setText("Hello World"); 
    getContentPane().add(txt); 
} 

public void setText(String s) 
{ 
    txt.setText(s); 
}  
+2

从java到updateWebPage(jso.call)的调用有一个参数,但javascript函数不带参数。 – 2011-04-08 19:42:10

回答

1

这个问题看起来像OpenJDK。

sudo aptitude remove icedtea6-plugin 
sudo aptitude install sun-java6-plugin 

修复了这个问题。

+1

您能否将错误报告提交给[IcedTea](http://icedtea.classpath.org/bugzilla/)或[Ubuntu](https://bugs.launchpad.net/ubuntu/+source/openjdk -6 /),所以他们可以解决这个问题? – 2011-04-08 20:22:08

+0

发布到Ubuntu: https://bugs.launchpad.net/ubuntu/+source/icedtea-web/+bug/755036 – 2011-04-08 21:02:45

+0

我在代码中提供了一个在线示例:http://epaul.github.com/stackoverflow -examples/bugreport-examples/ubuntu-755036/example.html如果这给你一个问题,你可以试试吗? (我在这里没有Ubuntu和Chrome,所以我现在无法测试它)。它在OpenSUSE/IcedTea/Firefox中工作,并在OpenSUSE/IcedTea/Opera中执行奇怪的事情(但不会崩溃)。如果它显示错误,我会在那里添加它。 – 2011-04-08 21:42:38