将Java Applet迁移到Java WebStart(JNLP)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Java Applet迁移到Java WebStart(JNLP)相关的知识,希望对你有一定的参考价值。
我将要通过JNLP作为Java Web Start应用程序迁移Java Applet,并遇到一些麻烦/误解...... 我得到的资源之一是:6 Migrating Java Applets to Java Web Start and JNLP:
但是让我们开始吧:
目前,该应用程序是一个applet(JApplet
),并且在过去通过嵌入到带有引用JNLP的applet标记的html中而启动。
现在,由于所有浏览器都删除了applet支持,我应该将其作为Java Web Start运行。
简单地调用相同的JNLP失败,因为无法加载资源(JAR文件)。 这是通过向JNLP文件添加代码库属性来修复的第一步。
Applet正在浏览器之外启动。
但现在困难的部分......我应该/想要摆脱任何applet依赖。
但是怎么样? 什么是正确的方法? 指南并没有真正说明,因此我有一些问题:
- 例如:如何替换
applet.getAppletContext()
的使用及其相关用法? - 指南说我应该在我的“主”applet类中放置一个静态main。但是我该怎么做呢?
我尝试以不同的方式启动applet,但之后我的applet不再启动了。
我该如何真正取代它? 什么应该是应用程序而不是applet的正确包装器? 怎么开始呢?
是否有一个更精细的指南/样本/教程可以跟随一个真实的例子?
您应用程序的替代包含可以是JFrame。 迁移路径将重构(移动)实际UI代码到JPanel中。可以将其放入JApplet或Java WebStart应用程序放入JFrame。 (在那段时间你可以有一个混合应用程序)。
<!-- main in MyApplication -->
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame();
frame.setTitle("MyApplication via JWS");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// add here the real UI to the frame: setUpGUI(frame);
frame.pack();
frame.setVisible(true);
}
});
}
<!-- Init() in MyApplication extends JApplet -->
@Override
public void init() {
EventQueue.invokeLater(new Runnable() {
public void run() {
// add here the real UI to the applet: setUpGUI(MyApplication.this);
}
});
}
注意:EventQueue。
根据问题1: 某些Applet规范必须以不同的方式替换。 在这里找到基础知识:https://docs.oracle.com/javase/9/deploy/jnlp-api-examples.htm 例如:对于AppletContext,BasicService作为某种替代品。
以上是关于将Java Applet迁移到Java WebStart(JNLP)的主要内容,如果未能解决你的问题,请参考以下文章