7

标题很混乱,但不知道如何用几句话来解释:

我有一个读取 *.example 文件的 java 应用程序。我还添加了文件关联,install4j因此当用户双击任何扩展名为 *.example 的文件时,我的应用程序就会启动

似乎 install4j 在中发送文件路径,args[]因此打开该文件并将其显示在我的应用程序中应该很容易。但是如果应用程序已经在运行会发生什么?我只能允许应用程序的一个实例,我怎么知道用户正在打开一个文件?

我发现了这个: http: //resources.ej-technologies.com/install4j/help/api/com/install4j/api/launcher/StartupNotification.html

但我仍然不明白我应该如何使用它以及我应该在我的应用程序中添加什么来监听这个事件。我在哪里可以找到一个例子?

4

1 回答 1

4

根据您链接到的文档,您可以执行以下操作:

StartupNotification.registerStartupListener(new StartupNotification.Listener() {
    public void startupPerformed(String parameters) {
        System.out.println("Startup performed with parameters " + parameters);
    }
});

由于startupPerformed将从不同的线程调用,因此您需要确保处理这些通知的代码是线程安全的。

该文件还说:

对于多个文件,文件用双引号括起来并用空格分隔。

因此,您还需要自己解析参数字符串。

于 2013-04-30T13:45:11.763 回答