Java - 小程序根本不显示?

Posted

技术标签:

【中文标题】Java - 小程序根本不显示?【英文标题】:Java - Applet simply not displaying? 【发布时间】:2012-01-16 11:18:12 【问题描述】:

好的,所以我做了一个小程序教程,我读到init() 方法是运行小程序所必需的。它确实如此。至少在我的 IDE(Eclipse)中。 Applet Viewer 在运行我的小程序时没有问题,当我尝试在 html 中执行 <applet> 标记时,没有显示任何内容,但它表现得好像存在某些东西(文本位置被标记改变)。这是我的小程序:

import java.awt.*;
import javax.swing.*;

public class Applet extends JApplet
    public void init()
        Label label = new Label("Hello!");
        this.add(label);
    

这是我在网页上使用的代码:

<applet code="Applet.class" width=100 height=100></applet>

即使我删除宽度/高度参数,我也会得到相同的结果(它不会显示在页面上)。是的,小程序的路径是正确的,并且在同一目录中。感谢您的帮助。

如果有帮助,这是我的DOCTYPE

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

最后,在浏览了控制台之后,我发现了这个:

Could not read chrome manifest file '/usr/lib/firefox-8.0/extensions
/972ce4c6-7e08-4474-a285-3208198ce6fd/chrome.manifest'.

【问题讨论】:

你用什么浏览器测试它? 【参考方案1】:

applet 标记已弃用,而应使用object 标记。某些浏览器不支持applet 标签,这可能是您看不到小程序的原因,而object 标签现在应该可以与几乎所有浏览器一起使用。

编辑:提供代码示例::

<OBJECT codetype="application/java"
        classid="java:Applet.class"
         >
My first Java applet.
</OBJECT>

有关更多示例和信息,请参阅 this link 和 this link。

【讨论】:

你能给我举个例子吗?我不知道 &lt;applet&gt; 标签已被弃用。 > 。 > (礼貌的咳嗽)小程序元素在 HTML 4.01 中已被弃用。我推测(但不能打扰检查)XHTML 被声明为transitional 以允许它在包含applet 元素的同时进行验证。 我已经编辑了答案,为您提供了一个应该有效的示例。也请查看链接以获取有关如何使用 &lt;object&gt; 标签的更多信息。 现在它显示 Start: Applet not initialized。 @Ken - 查看 Java 控制台 (docs.oracle.com/javase/1.5.0/docs/guide/deployment/…) 并在此处发布异常堆栈跟踪(如果有)。【参考方案2】:

如前所述,不推荐使用applet标签。如果您确定最终用户浏览器将启用 javascript,您可以使用此 simple way 来部署您的小程序:

<script src="http://www.java.com/js/deployJava.js"></script>
<script>
    var attributes = codebase:'http://java.sun.com/products/plugin/1.5.0/demos/jfc/Java2D',
                      code:'java2d.Java2DemoApplet.class',
                      archive:'Java2Demo.jar',
                      width:710, height:540 ;
    var parameters = fontSize:16 ;
    var version = '1.6' ;
    deployJava.runApplet(attributes, parameters, version);
</script>

以上代码将在 JRE 1.6.0 或更高版本上使用一个参数 (fontSize) 启动 Java 2D 小程序。

【讨论】:

这真的有道理吗?使用object 标签会更好吗? 顺便说一句,这会影响小程序(更改高度和宽度),但不会显示任何内容。 @Ken:因为它是一种非常好的、干净且轻松的小程序部署方式,无需关心使用哪个标签(小程序/对象/嵌入)。 @Ken:这很奇怪!你能在浏览器的错误控制台上看到任何错误吗(对于 Firefox,按 ctrl+ shift+ J)。【参考方案3】:

对于像我一样搜索 Google 的人来说,这只是一个最新的答案(因为 Java Web Start 和 Java Applets 已经发生了很多变化)。

以下情况可能是您的 Java 小程序网页不可见的原因:

Chrome 不再支持 NPAPI(Java 小程序所需的技术)

Web 浏览器的 Java 插件依赖于跨平台插件 架构 NPAPI,已被所有主流 Web 浏览器支持 十多年来。 Google 的 Chrome 版本 45(计划发布 2015 年 9 月)放弃对 NPAPI 的支持,影响插件 Silverlight、Java、Facebook Video 和其他类似的基于 NPAPI 插件。 https://www.java.com/en/download/faq/chrome.xml

Firefox 限制 NPAPI 支持(Java 小程序所需的技术)

64位版本的火狐不支持NPAPI插件, 包括Java。从 Firefox 52(2017 年 3 月发布)开始, 插件支持仅限于 Adob​​e Flash,并且不再支持 NPAPI,影响 Java、Silverlight 和其他类似插件 基于 NPAPI 的插件。 https://java.com/en/download/help/firefox_java.xml

看起来 Internet Explorer 是目前最好的选择。

【讨论】:

以上是关于Java - 小程序根本不显示?的主要内容,如果未能解决你的问题,请参考以下文章

Java小程序加载失败时如何显示消息?

透明小部件不随其父级移动

利用Runnable 接口实现多线程,编写一个Java小程序。在屏幕上显示时间,每隔一秒钟刷新一次。为使小程序不

xrandr 根本不显示 HDMI

小程序反馈表显示不全

微信小程序调用数据库数据显示不全