Java嵌入到HTML中

时间:2012-06-09 21:24:24

标签: java html applet embed

我确信这个问题已被问了一百万次,但无论我做了多少次Google搜索,我都无法解决这个问题。我基本上试图让一个包含多个包的项目嵌入到网页中。我制作了一个测试程序,它只是让一些球在屏幕周围反弹并且能够运行。我将主类放在一个包中,将球类放在另一个包中,只是为了测试它,它似乎运行良好。但是我在网页中实际需要的程序(简称为FinalProject)拒绝这样做。

我能做到的最好的事情就是给我一个空白的屏幕,不给出错误但只是白色。如果我尝试点击应该没有任何反应的地方,我认为因为小程序在那里,但只是显示白色,所以我看不到它。我确实使用了applet标签,我的理解现在已经折旧,但我需要在网页上启用此项目,以便老师可以看到它。我们已经测试了其他人的项目(使用applet标签)工作,所以我现在试图坚持使用它,并担心之后让它在每个浏览器上工作。虽然这很可能是问题所在。也许它可以在他的浏览器上工作,但不是我的。我尝试在Google Chrome,Mozilla Firefox和Internet Explorer上运行我的程序,但没有运气。

以下是HTML代码:

<html>
<head>  

</head>  
<body>  
    <applet code = "main.FinalProject.class" width = "700px" height = "500px"></applet>  
</body>  
</html>

编写的HTML文件位于[Eclipse Workspace]/FinalProject/bin/test.htm。 HTML中引用的FinalProject.class文件存在于[Eclipse Workspace]/FinalProject/bin/ main/FinalProject.class中。 FinalProject.class文件充当主类,所以我很确定这是我需要运行的那个。它是具有init(),actionPerformed(),paint()方法和所有好东西的那个。

目前我正在尝试在我的计算机上脱机运行,因此我不应该考虑任何网络URL。我使用Eclipse编写Java代码,dunno,如果这有任何区别。不幸的是,Java代码相当大,在这里重现太多,如果有一些特定的东西,你认为是我可以查看的问题并发布那个小部分。

我的一些朋友设法让他们的工作,但他们说他们必须删除所有他们的.png文件(烦人但我的项目可行)。他们还说要删除所有鼠标移动代码。我的程序有点依赖于它,我需要它才能使它工作。我知道必须有一种在线使用所有MouseListener和MouseMoveListener代码的方法,也许它有点不同。我不知道如果这与此有关,但我想我会指出它只是为了安全。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:6)

基本上你问的是:How to deploy a java applet for today's browsers (applet, embed, object)?

基于此,我认为你想要的是:

<object 
  classid="clsid:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA"
  style="height: 500px; width: 700px;">
  <param name="code" value="FinalProject.class">
    <comment>
      <embed code="FinalProject.class"
        type="application/x-java-applet"
        height="500" width="700">
        <noembed>
          This browser appears to lack support for Java Applets.
        </noembed>
      </embed>
    </comment>
  </object>

现在,代码中的文件名为main.FinalProject.class。好像FinalProject.class似乎更有可能。但你的可能是对的。在任何情况下,此html文件都必须与main.FinalProject.classFinalProject.class位于同一文件夹中,并且可能还需要任何类别。

现在,您可能还需要确保您的浏览器可以实际运行applet。请参阅: How do I enable Java in my web browser?


更新

根据Andrew Thompson的反馈,首选解决方案是使用Oracle的JavaScript,如下所示:

<script src="http://www.java.com/js/deployJava.js"></script>
<script>
    var attributes = {
        code:'FinalProject.class',
    width:700, height:500} ;
    var parameters = {}; // does the Applet take parameters?
    var version = '1.6' ; // does the Applet require a minimum version of Java
    deployJava.runApplet(attributes, parameters, version);
</script>

这需要能够加载任意JavaScript,但您也可以捕获该deployJava.js并使其也是本地的。可能值得一看。