我敢肯定,这个问题已经被问了一百万遍了,但是无论我做多少Google搜索,我都无法解决这个问题。我基本上是在尝试将包含多个包的项目嵌入到网页中。我编写了一个测试程序,该程序使屏幕上的一些球弹了起来,并且能够使它运行。我将主类放在一个包中,将球类放在另一个包中只是为了对其进行测试,它似乎运行良好。但是我实际上在网页中需要的程序(简称为FinalProject)拒绝这样做。
我能做的最好的事情是给我一个黑屏,没有出现错误,只是白色。如果我尝试单击应该没有任何 react 的位置,我认为是因为该小程序在那里,但仅显示白色,所以我看不到它。我确实使用了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代码很大,在这里无法重现,如果有一些特定的问题,您认为这是我可以查找并张贴的小部分的问题。
我的一些 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并将其也本地化。也许值得一瞧。