我确信这个问题已被问了一百万次,但无论我做了多少次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代码的方法,也许它有点不同。我不知道如果这与此有关,但我想我会指出它只是为了安全。
非常感谢任何帮助。
答案 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.class
或FinalProject.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并使其也是本地的。可能值得一看。