Java 嵌入到 HTML 中

标签 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 代码,不知道这是否有任何区别。不幸的是,Java 代码相当大,太多无法在这里重现,如果您认为有什么具体的问题,我可以查看并发布那个小部分。

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

如有任何帮助,我们将不胜感激。

最佳答案

基本上你是在问这样的问题: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 以及可能还需要的任何类位于同一文件夹中。

现在,您可能还需要确保您的浏览器确实可以运行小程序。请参阅: 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 并将其放在本地。可能值得一看。

关于Java 嵌入到 HTML 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10964693/

相关文章:

java - 为什么不使用 ResourceBundle 而不是 Properties?

java - JAVA中有类似JSON的数据结构吗?

java - 为 REST API 生成 Swagger UI 文档

javascript - Javascript 中的字数统计

java - JApplet 代码在嵌入时运行

java applet 在部署时不运行,但在 eclipse 中运行时运行

java - 使用一个线程跨越多个连接还是使用多个线程进行负载测试?

html - 尝试在 Wordpress Widget 中使用 HTML 以特定方式对齐两列

jquery - form.submit() 与 JQuery 返回字符编码错误消息

java - 我应该将 "mysql-connector-java-5.1.31-bin.jar"文件放在 Netbeans 中的哪个位置?