jdk12中appletviewer的替代

时间:2019-07-27 12:54:31

标签: java applet awt java-12

JDK12中的applet浏览器还有其他选择吗?

我是Java新手,我尝试在Java中添加AWT复选框 它可以在JDK 1.8中正常运行,但不能在JDK12中运行。

我在Internet上进行搜索,发现applet查看器已弃用。 (不建议使用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中运行。

1 个答案:

答案 0 :(得分:1)

正式没有办法在Java 11或更高版本上运行applet:

  • appletviewer应用程序已被删除。
  • 小应用程序所依赖的java.applet.*类已被删除。

Applet应该被视为无效技术。

您可以可以想象从Java的早期版本中获取applet类的副本,实现自己的appletviewer类版本,然后将它们放到一个JAR文件中。但是我不知道这是否真的有效。

但是,这是一个坏主意。小应用程序的主要用例是将Java嵌入网站中,但由于现代浏览器不再支持Java插件,因此无法使用。 (的确,他们积极地阻止了他们!)

最好的办法是根据小程序的用途使用不同的技术重写小程序:

  • AWT /秋千
  • JavaFX
  • SWT
  • HTML 5

您说:

  

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

在逻辑上或事实上都不是错误的。事实原因是,小应用程序无法在香草JDK12上运行,因为JVM不再提供您的小应用程序所需的java.applet.*类。如果尝试加载applet类,则会得到ClassDefNotFoundError