我敢肯定这个问题已被问过一百万次,但无论我进行多少次 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.class
或 FinalProject.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/