将Java小程序嵌入Google Sites网站

3

我正在尝试在我创建的Google网站上运行一些Java代码。我知道这可能存在问题,但我尝试了以下两个选项:

  1. Using the Code Wrapper gadget as described here: http://web.michaelchughes.com/how-to/embed-java-applets-in-google-sites. I used the Code Wrapper gadget from the following URL: http://hosting.gmodules.com/ig/gadgets/file/105629041657992777031/code-wrapper.xml with the following Javascript code:

    <script type="text/javascript" src="http://www.java.com/js/deployJava.js"></script>
    
    <script type="text/javascript">
        /* <![CDATA[ */
            var attributes = {
                code: 'com.fusego.wimbeep.applet.ScreamURLApplet.class',
                archive: 'http://sites.google.com/site/wimbeep/technology/wimbeeptools.jar',
                width: 500,
                height: 100
            };
              var parameters = { };
              var version = '1.6';
              deployJava.runApplet(attributes, parameters, version);
        /* ]]> */
    </script>   
    
我在Firefox浏览器中打开调试控制台,发现deployJava未定义,因此以下内容无效:
  1. 使用嵌入式标签与Embed Gadget:

    <_applet archive="http://sites.google.com/site/wimbeep/technology/wimbeeptools.jar" code="com.fusego.wimbeep.applet.ScreamURLApplet.class" height="400" width="400"/>

我看到JRE启动了,但出现了错误,并在控制台报告以下内容:
load: class com.fusego.wimbeep.applet.ScreamURLApplet.class not found.
java.lang.ClassNotFoundException: com.fusego.wimbeep.applet.ScreamURLApplet.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: com.fusego.wimbeep.applet.ScreamURLApplet.class

这真的很令人沮丧。我尝试了许多组合,包括在代码属性中使用和不使用.class后缀,但它就是无法工作。有任何想法吗?


那个引用的脚本是你应该使用的,但那个片段没有导入它。它在你链接的描述和Oracle的描述中都被导入了。 - Andrew Thompson
1
叹息,当我点击那个链接时,它显示404错误。当我查看该链接时,它似乎被匿名化了。我没有时间去猜测Jars的位置或内容,所以这是交易条件。提供该Jar文件的实际URL和加载它的页面,我将提供进一步的帮助。 - Andrew Thompson
抱歉,我已经编辑了问题并提供了实际的网站和软件包名称。非常感谢您的帮助。谢谢。 - smichak
1
@smichak:我猜如果你想要一个简单的方法来托管JApplet,你不必支付任何费用,只要你的服务提供商允许你从其他人那里获取域名。许多网站提供免费的域名,可以查看我的主页,你会找到这些网站。虽然现在我的电脑是服务器,所以我必须保持它处于“开启”状态,以便其他人可以访问我的网站 :-) - nIcE cOw
2个回答

4
我曾遇到类似的问题,我选择了将小程序托管在另一个网站上,并在sites.google.com上发布普通链接。或者,这个thread建议通过加载小程序,引用这个example
补充:这个(有些更透明的)example演示了几种方法。
  • Java Web Start
  • JWS Applet
  • 传统小程序
  • 可下载的带清单的JAR文件

1
请问你的小程序托管在哪里?这是付费的网络托管服务吗?这样的服务有特殊要求吗? - smichak
@trashgod,你为什么说“权宜之计”?有什么不好的地方吗? - Pacerier
@trashgod,谷歌总是有这种“按照我们的方式做”的心态,与在Rackspace等地托管相比,存在大量限制。 - Pacerier
@Pacerier:在这种情况下,下行风险是时代华纳有线计划在月底停止该服务。 - trashgod

2

我在本地使用以下HTML代码时看到了“无错误加载”(然后什么都没有发生):

<html>
<head>
<title>WimBeepTools</title>
</head>
<body>
<applet
    code="com.fusego.wimbeep.applet.ScreamURLApplet"
    archive="wimbeeptools.jar"
    width="500"
    height="100">
</applet>
</body>
</html>

那个HTML和Jar文件在同一个目录中,所以在http://sites.google.com/site/wimbeep/technology/applet001.html加载HTML,小程序就可以成功加载了。
请确保添加001后缀,以确保我们可以在最初失败的情况下检查其他变体。用户看到的页面应该位于另一个URL上。
顺便说一下
对于HTML,请使用代码格式

<_applet archive="http://sites.google.com/site/wimbeep/technology/wimbeeptools.jar" code="com.fusego.wimbeep.applet.ScreamURLApplet.class" height="400" width="400"/>

初始的下划线是为了防止网站“吞噬”HTML吗?请将HTML(JNLP / XML /输入/输出和源代码)放入代码标记中。小程序元素从未打算用“/&gt;”进行“自我关闭”。请按照我的示例添加关闭小程序元素。
先排序详细信息
最好使用deployJava.js在部署时编写嵌入小程序的元素。但首先,使用“普通的旧HTML”和小程序元素修复路径和其他属性细节。

嗨,感谢您的回答。我已经将您的HTML代码上传到http://sites.google.com/site/wimbeep/technology/applet001.html,但我仍然无法找到ScreamURLApplet的ClassNotFoundException。 - smichak
当我点击那个链接时,我看到“网站下载附件单击此处下载您的附件。”当我“单击此处”时,它会将文件下载到临时目录,然后在FF中显示。显然这样行不通。你不能让页面以正常方式可用吗? - Andrew Thompson
这是一个 Google Sites 网站。我只能将附件添加到以通用文件形式被浏览器下载的页面中。我可以在 HTML 包含框或代码包装器小工具中向页面添加HTML代码,但由于同样的原因(ClassNotFoundException)尝试了却不起作用。 - smichak
我可以在HTML框或代码包装小工具中添加HTML代码到页面中。所以我会尝试它,并且除此之外还会调查其他事情。 - Andrew Thompson
1
@trashgod,目前还无法使用JS来检查JRE等,这仍然有些笨拙,但这正是我两天前应该建议的答案!您能将其升级为答案,以便我可以点赞吗?很遗憾,在从Google网站部署applet/富客户端时存在如此多的障碍。 :( - Andrew Thompson
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接