14

我确信这个问题已经被问过一百万次了,但是无论我进行多少次谷歌搜索,我都无法让它发挥作用。我基本上是在尝试将一个包含多个包的项目嵌入网页中。我做了一个测试程序,它只是让一些球在屏幕上弹跳并且能够让它运行。我将主类放在一个包中,将球类放在另一个包中只是为了测试它,它似乎运行良好。但是我在网页中实际需要的程序(只是称为 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 代码,不知道这是否有什么不同。不幸的是,Java 代码相当大,无法在此处重现,如果您认为有什么具体问题,我可以查看并发布该小部分。

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

在这里的任何帮助将不胜感激。

4

1 回答 1

7

基本上你问的是:如何为当今的浏览器部署一个 Java 小程序(小程序、嵌入、对象)?

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

<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.class并且FinalProject.class可能还需要任何类。

现在,您可能还需要确保您的浏览器实际上可以运行小程序。请参阅:如何在 Web 浏览器中启用 Java?


更新

根据 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 并将其设置为本地。也许值得一瞧。

于 2012-06-09T21:32:40.300 回答