Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Java小程序迁移到Java WebStart(JNLP)_Java_Applet_Migration_Java Web Start_Jnlp - Fatal编程技术网

将Java小程序迁移到Java WebStart(JNLP)

将Java小程序迁移到Java WebStart(JNLP),java,applet,migration,java-web-start,jnlp,Java,Applet,Migration,Java Web Start,Jnlp,我将迁移一个Java小程序,通过JNLP作为Java Web Start应用程序启动,并遇到一些问题/误解… 我拥有的资源之一是: 但让我们开始: 目前,该应用程序是一个applet(JApplet),过去是通过将applet标记嵌入到一个HTML中来启动的,applet标记指向一个JNLP 现在,由于所有浏览器都放弃了对applet的支持,我应该将其作为javawebstart运行 简单调用同一JNLP失败,因为无法加载资源(JAR文件)。 这是第一步,通过向JNLP文件添加代码基属性来修复

我将迁移一个Java小程序,通过JNLP作为Java Web Start应用程序启动,并遇到一些问题/误解…
我拥有的资源之一是:

但让我们开始:

目前,该应用程序是一个applet(
JApplet
),过去是通过将applet标记嵌入到一个HTML中来启动的,applet标记指向一个JNLP

现在,由于所有浏览器都放弃了对applet的支持,我应该将其作为javawebstart运行

简单调用同一JNLP失败,因为无法加载资源(JAR文件)。
这是第一步,通过向JNLP文件添加代码基属性来修复

小程序正在浏览器外部启动

但现在最困难的部分。。。我应该/想摆脱任何applet依赖关系

但是怎么做呢?
正确的方法是什么?
指南并没有真正说明问题,因此我有一些问题:

  • e、 g.:如何替换
    applet.getAppletContext()
    的用法及其相关用法
  • 指南说我应该在我的“main”applet类中放置一个静态main。但是我该怎么做呢 我试图以不同的方式启动applet,但此后我的applet就再也无法启动了

    如何真正替换它?
    应用程序的正确包装应该是什么而不是小程序?
    怎么开始呢


    是否有一个更详细的指南/示例/教程可供实际示例使用?

    应用程序的另一个容器可以是JFrame。
    迁移路径是将实际UI代码重构(移动)到JPanel中。可以将其放入JApplet中,或者将javawebstart应用程序放入JFrame中。(在此期间,您可以使用混合应用程序)

    
    公共静态void main(字符串[]args){
    invokeLater(新的Runnable(){
    公开募捐{
    JFrame=新JFrame();
    frame.setTitle(“通过JWS的MyApplication”);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //在这里将真实的UI添加到框架中:setUpGUI(框架);
    frame.pack();
    frame.setVisible(true);
    }
    });
    }
    @凌驾
    公共void init(){
    invokeLater(新的Runnable(){
    公开募捐{
    //在这里向applet添加真实的UI:setUpGUI(MyApplication.this);
    }
    });
    }
    
    注意:事件队列

    根据问题1:
    必须以不同的方式替换某些小程序规范。
    在这里找到基本知识:

    e、 g:对于AppletContext来说,基本服务是一种替代品。

    在2017/18年使用Java Web Start真的是一个好主意吗?它根本无法在移动环境中运行。您对AppletContext的哪些方法感兴趣?您可以使用javax.imageio包加载图像;您可以使用javax.sound.sampled包播放声音。问题1或问题2都会形成一个单独的问题线索,每个问题本身都“太宽”。投票结束的范围太广。请把你的问题分成(至少)两条线,然后,做一些工作,提出更具体的问题。例如,对于@VGR建议的第1部分,请指定小程序当前使用的小程序上下文的十种方法中的哪一种。”“如何启动它?”?第二部分。在
    JPanel
    中重新编码GUI,该面板可以放在
    JApplet
    JFrame
    中。搜索或搜索“混合”的帖子。这些答案讨论(并经常显示)如何制作应用程序。它可以作为小程序或应用程序工作。如果您想更进一步,完全删除applet支持,那么一旦有了一个工作的混合applet/应用程序,就应该很容易了。
    <!-- 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);
                }
            });
        }