Java JNLP桌面快捷方式和图标

Java JNLP桌面快捷方式和图标,java,swing,desktop-application,jnlp,Java,Swing,Desktop Application,Jnlp,Java通过JNLP与用户的桌面操作系统很好地集成。 我的软件不仅显示为桌面图标,而且在控制面板(Windows 7)中作为已安装程序列出。我还能够让JNLP文件自动配置文件关联。现在,如果用户双击我的程序保存的文件(pxml文件),程序将启动。JNLP通过web发布使这一出色的桌面集成顺利实现。 还有一个问题:如何让程序加载用户双击的数据文件?pxml文件被赋予与我的程序相同的图标,JNLP创建了文件关联,因此当用户试图打开pxml文件时,windows知道启动我的软件。但我的程序如何知道在启

Java通过JNLP与用户的桌面操作系统很好地集成。 我的软件不仅显示为桌面图标,而且在控制面板(Windows 7)中作为已安装程序列出。我还能够让JNLP文件自动配置文件关联。现在,如果用户双击我的程序保存的文件(pxml文件),程序将启动。JNLP通过web发布使这一出色的桌面集成顺利实现。 还有一个问题:如何让程序加载用户双击的数据文件?pxml文件被赋予与我的程序相同的图标,JNLP创建了文件关联,因此当用户试图打开pxml文件时,windows知道启动我的软件。但我的程序如何知道在启动时打开该文件

下面是参考的JNLP文件的一部分,取自


导火索
智能软件解决方案公司。
监考排班软件
...  

要打开与Java Web Start启动相关联的文件,请使用传递给
main(String[]args)
的参数数组的第二个元素。当您通过双击文件启动应用程序时,第一个元素将是“-open”,args[1]存储启动时要打开的文件的文件路径。这个特性确实让Java应用程序感觉像一个本机桌面应用程序

我在JNLP文档中找不到这个

下面是实现此功能的示例main方法。FileFunction是一个具有用于应用程序文件I/O的静态方法的类

public static void main(String[] args) {
    GUI win = new GUI(null);
    if(args.length==2) {
        win = new GUI(null);
        StringBuilder params = new StringBuilder();
        for(String s : args) {
            params.append(s);
            params.append("\n");
        }
        JOptionPane.showMessageDialog(null, params);
        try {
            FileFunction.loadList(new FileInputStream(new File(args[1])));
        }
        catch(IOException ioe) {
            FileFunction.showFileError(ioe);
        }
    }

要打开与Java Web Start启动相关联的文件,请使用传递给
main(String[]args)
的参数数组的第二个元素。当您通过双击文件启动应用程序时,第一个元素将是“-open”,args[1]存储启动时要打开的文件的文件路径。这个特性确实让Java应用程序感觉像一个本机桌面应用程序

我在JNLP文档中找不到这个

下面是实现此功能的示例main方法。FileFunction是一个具有用于应用程序文件I/O的静态方法的类

public static void main(String[] args) {
    GUI win = new GUI(null);
    if(args.length==2) {
        win = new GUI(null);
        StringBuilder params = new StringBuilder();
        for(String s : args) {
            params.append(s);
            params.append("\n");
        }
        JOptionPane.showMessageDialog(null, params);
        try {
            FileFunction.loadList(new FileInputStream(new File(args[1])));
        }
        catch(IOException ioe) {
            FileFunction.showFileError(ioe);
        }
    }

以前从未尝试过此方法,但这不是作为参数传递给main()方法吗?如果JNLP无效(且格式不正确),请尝试使用.Andrew检查它-上面的XML不是整个文件。你确定JaNeLA是最新的,并且能识别1,6引入的新语法吗?@mikera在我写这篇文章之后,我想到了同样的事情。我必须写一些代码来测试这个理论。这就是Windows作为命令行参数处理文件关联应用程序启动的方式吗?我很确定它是最新的。奥托,我现在不明白是什么让我说那是畸形的。我的错。为什么?您是否收到任何错误或警告?用户误解消息是很常见的,其中一些我无法控制。以前从未尝试过,但这不是作为参数传递给main()方法吗?如果JNLP无效(且格式不正确),请尝试使用.Andrew检查它-上面的XML不是整个文件。你确定JaNeLA是最新的,并且能识别1,6引入的新语法吗?@mikera在我写这篇文章之后,我想到了同样的事情。我必须写一些代码来测试这个理论。这就是Windows作为命令行参数处理文件关联应用程序启动的方式吗?我很确定它是最新的。奥托,我现在不明白是什么让我说那是畸形的。我的错。为什么?您是否收到任何错误或警告?用户误解消息是很常见的,其中一些我无法控制。