jdk12中appletviewer的替代方案

Posted

技术标签:

【中文标题】jdk12中appletviewer的替代方案【英文标题】:Alternative to appletviewer in jdk12 【发布时间】:2019-12-05 12:36:02 【问题描述】:

JDK12中的applet viewer有什么替代品吗?

我是 Java 新手,我尝试在 Java 中添加 AWT 复选框 它在JDK 1.8 中运行良好,但在JDK12 中无法运行。

我在互联网上搜索,发现小程序查看器已被弃用。 (Applet API 已弃用,不可替代)在官方 oracle 的帮助网页上。

我搜索了这个问题并没有得到满意的答案,所以我在这里发布......

import java.applet
import java.awt.*;

 /*
<applet code="CreateCheckBox" width=200 height=200>
</applet>
*/
public class CreateCheckBox extends Applet

public void init()
    Checkbox checkBox1 = new Checkbox();
    checkBox1.setLabel("My Checkbox 1");
    Checkbox checkbox2 = new Checkbox("My Checkbox 2");
    add(checkBox1);
    add(checkbox2);


它应该在JDK12中工作,因为它运行在JDK1.8中。

【问题讨论】:

没有。重写另一种发射技术。 是什么让您认为某些东西应该适用于 JDK 12,只是因为它适用于 JDK 1.8。这只是一厢情愿的想法。实际上,Applet 的主要问题不是 JDK 12。主要问题是现代浏览器不再支持 Applet。 【参考方案1】:

官方没有办法在 Java 11 或更高版本上运行小程序:

appletviewer 应用程序已被删除。

applet 所依赖的java.applet.* 类已被删除。

更正:他们还没有这样做,但我希望他们很快就会这样做。

Applet 应该被视为死技术。

您可以可以想象实现您自己的appletviewer 类版本,并将它们与您的小程序代码一起放入一个JAR 文件中。它应该工作。然而,这是一个坏主意。小程序的主要用例是在网站中嵌入 Java,这将不起作用,因为现代浏览器不再支持 Java 插件。 (事实上​​,许多最近的浏览器都在积极阻止 Java 插件!)

最好的办法是使用不同的技术重写小程序,具体取决于它们的用途:

AWT / 摆动 JavaFX SWT html 5 等等

你说:

它应该在JDK12中工作,因为它运行在JDK1.8中。

这在逻辑上是不正确的。

【讨论】:

@Stephen_C 我没有收到 ClassDefNotFoundError。类文件正在生成,编译没有问题。感谢您的回答,但正如我所说,我正在学习,所以要完成我的一些作业,我需要使用小程序。谢谢 1.使用 Java 8 完成课程作业。 2. 在课程结束时,当他们要求匿名反馈时,请指出该课程正在教授已弃用的技术。让你的朋友也这样做。建议他们改为教 JavaFX 或 android

以上是关于jdk12中appletviewer的替代方案的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL 11 和 12 的 PL/Java 替代方案是啥?

GrantedAuthorityImpl() 类的替代方案

C# Metro 风格中 IsSubclassOf 或 IsAssignableFrom 的任何替代方案

performSelectorOnMainThread 的 Swift 替代方案

对于 ActivityResultContracts,应用内更新的替代方案是啥?

Enumerable.First (System.Linq) C# 的替代方案