我创建一个简单的applet。当我通过终端appletviewer helloworld.html运行apply时,我会遵循“ 24小时内的Java”中的教程。有效。我看到“点击我”按钮和“ Hello World”,但是当我通过浏览器(Safari,Chrome,Firefox)打开helloworld.html时。我没有看到applet。它只是“终点线”!
我为浏览器启用了Java插件,而我正在使用macosx

我的代码:

import javax.swing.*;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
//<applet code = Saluton width = 300 height = 300> </applet>
public class Saluton extends Applet {
    public void init() {
         Button buttons = new Button("Click me!");
         this.add(buttons);
    }
    public void paint(Graphics screen)
    {
        Graphics2D screen2D = (Graphics2D) screen;
        screen2D.drawString("Hello World",120,120);
    }
}


和HTML文件

<head>
<title>Hello World!</title>
</head>
<body bgcolor = green text = "#FF00FF">
<center>
<applet
    code = Saluton
    width = 300
    height = 150
>
<p>end line!</p>
</applet>
</center>
</body>
</html>

最佳答案

这本来只是个评论,但我将尝试详细解释...

TL; DR

它不起作用是因为最近大多数浏览器都不运行Java Applet,没有办法解决它,这很好,不要与未来抗争(2019年甚至是现在,您都在尝试使用过去的工具)。

我再说一遍,您今天不应该使用applet,这天您不应该使用applet。讨论结束。

长答案

这段历史是基于古老的,轶事的,也许不是那么精确的经验。

一些历史

Java小程序是在1995周围引入的,而在其他时候,Javascript更年轻,缺少诸如库或标准之类的东西。为了解决此问题,利用了运行外部插件的能力来运行一些更强大,更复杂的解决方案,例如Flash或applet。

这允许使用一些真正强大的应用程序,游戏等,但是易于运行外部代码以及互联网在世界范围内的普及,为错误的人提供了一些危险的工具。

Java人士试图定义边界,以允许使用Java的功能来维护沙盒,该沙盒可为用户提供安全性,而没有对Java语言设置硬限制,但即使是Flash插件,也从一开始就设计用于浏览器,出现了一些非常严重的security problems。想象一下Java,它是一种旨在在桌面上运行的语言,请确保它也有一些hard problems

因此,解决方案不足,Sun(后来的Oracle)和Macromedia(后来的Adobe)为此问题投入了大量的金钱和资源,但是没有尽头,黑客毫无问题地发现新的bug,而人们确实做到了。没有保持程序更新的文化,那时还没有自动更新,所以现在想象,您是一家拥有大量资金的公司,需要为浏览器开发更复杂的应用程序,您怎么办? (不说公司名称)

扔掉两吨钱,然后……再把它叫作Microsoft Silverlight,并称其为Dart,与此同时,Google员工尝试了另一种方法,称为Javascript V8,但采用了后备计划,因此强烈建议用三吨钱用Javascript创造了JNLP,这是一种非常体面且令人印象深刻的Java语言实现,而与此同时,有些人正在努力争取在浏览器之间实现某些标准。

在这种情况发生的同时,开源也正在成为软件行业的主导力量,幸运的是,很多大技术都在炒作中,所以有很多善意和合作愿望,所以公司意识到了,为什么要做我们投入了数不胜数的资金来建立自己的私有工具,而不是改进公共工具?,因此所有技术都被放弃了,而采用了更多的标准(HTML5,ECMA6)。

这有助于集中化安全性问题,增加了大量的库来满足日益复杂的应用程序的需求,从而进一步增强了当今我们使用的Web应用程序。浏览器一直在缓慢地支持所有这些旧技术,因此您不应该在其中进行开发。

那么,如今,用于相同任务的是什么?

在这个工程生命中,一切都取决于它。

对于需要确保在大量设备上运行的常规应用程序,请使用Web应用程序,可以在后端使用Java,它作为服务器端语言确实非常强大,并且具有大量的库和框架,对于前端,您可以使用Vue,Angular,React或任何适合您的库。

如果您需要某些高级功能并可以访问某些非Web标准硬件,则可以尝试使用一些工具来创建具有一个代码库的本机应用程序,例如react native或xamarin。

如果您只想在桌面环境中通过简单的更新来运行Java,那么我建议您完全绕过浏览器并使用


  允许通过使用远程Web服务器上托管的资源在客户端桌面上启动应用程序


这样,您可以使用JavaFx,Swing或任何您喜欢的东西。

这些是一些选择,还有更多选择(完整的本机,适用于Windows的NetFramework,Qt ...),但是请再次使用,不要使用陈旧,不安全且已贬值的applet。

免责声明:对不起,我的英语不是我的主要语言,我们对此进行了更正。

关于java - 小程序-浏览器不显示Java小程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46102421/

10-11 07:15