我正在创建一个简单的applet。我遵循“24小时Java .when”中的教程,我通过终端appletviewer helloworld.html运行apply。啊,真灵。我看到“点击我”按钮和“你好世界”,但当我打开helloworld.html浏览器( Safari,Chrome,火狐)。我没看到小程序。它只是“终点线!”我为浏览器启用了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>发布于 2019-03-22 18:05:58
我本来是想发表意见的,但我会尽量详细解释.
TL;DR
它不能工作,因为现在大多数浏览器都不运行java小程序,没有办法绕过它,而且它是好的,不要为未来而战(2019年甚至是现在,你正在尝试使用过去的工具)。
您今天不应该使用applet,我重复一遍,,您今天不应该使用applet,。讨论结束。
长答案
这一历史是建立在古老的,轶事的基础上,也许不是那么精确的经验。
一些历史
Javascript是围绕一九九五年引入的,其他时候,Javascript更年轻,缺少库或标准之类的东西。为了解决这个问题,使用了运行外部插件的能力来运行一些更强大和更复杂的解决方案,比如闪光灯或applet。
这使得一些真正强大的应用程序,游戏等,但易于运行外部代码,加上互联网在世界上的普及,给一些危险的工具,在错误的人手中。
java人试图定义允许使用java功能的边界,即维护一个提供用户安全的沙箱,而不对java语言设置硬限制,但即使是从一开始就在浏览器中运行的Flash,也有一些非常严肃的安全问题。想象一下Java,一种设计用于在桌面上运行的语言,当然它也有一些困难问题。
因此,解决方案是不够的,Sun (后来的甲骨文)和Macromedia (后来的Adobe)为这个问题投入了大量的资金和资源,但是没有尽头,黑客们没有发现新的bug的问题,而且人们没有让你的程序更新的文化,而自动更新也不是一件事情,所以现在想象一下,你是一家拥有其他大量资金的公司,需要为浏览器制作更复杂的应用程序,你做什么呢?(无须说明公司名称)
扔两吨钱然后..。CrEaTe YoUr OwN tEcHnOlGy!,也叫它微软Silverlight,与此同时,谷歌的人们尝试了其他方法,称为Dart,但通过备份计划,用Javascript强大的倒置三吨钱,创建Javascript V8,一个真正体面和令人印象深刻的Javascript语言的实现,与此同时,一些人正在努力在浏览器之间实现一些标准。
在这种情况发生的同时,开源也正在成为软件行业的主导力量,幸运的是,许多大型科技公司都在炒作,所以他们有很多善意和合作愿望,因此公司意识到,为什么我们要投入巨额的资金来攻击我们自己的私有工具,而不是改进公共工具呢?所以所有的技术都被抛弃,转而采用更多的标准(HTML5,ECMA6)。
这帮助集中了安全问题,增加了大量的库,这些库为越来越复杂的应用程序提供服务,从而促进了我们现在使用的web应用程序。慢慢地,浏览器一直支持所有这些老技术,所以您不应该在它们中进行开发。
那么,现在,什么是用于相同的任务呢?
作为工程生活中的一切,依赖于。
对于您需要确保在大量设备中运行的通用应用程序,使用web应用程序,您可以使用Java作为后端,它作为服务器端语言非常强大,并且有大量的库和框架,对于前端您可以使用Vue、React或任何适合您的库。
如果您想要一些高级功能和一些非web标准硬件的访问,您还可以尝试一些工具,这些工具允许使用一个代码库创建本地应用程序,比如react本机或xamarin。
如果您只想在桌面环境中运行java,并进行简单的更新,我可以建议完全绕过浏览器,使用JNLP
允许通过使用远程web服务器上承载的资源在客户端桌面上启动应用程序。
这样你就可以使用JavaFx,Swing或者任何你喜欢的东西。
这些是一些选项,还有更多的选项(完全本机,NetFramework for windows,Qt.)但是,请再说一遍,不使用applet--它们是旧的、不安全的和折旧的。
免责声明:对不起我的英语,它不是我的主要语言,如有任何更正将不胜感激。
https://stackoverflow.com/questions/46102421
复制相似问题