listen for “open file with my java application” event on windows

∥☆過路亽.° 提交于 2019-12-04 22:13:12

问题


Title is confusing, but don't know how to explain this in a few words:

I have a java application that reads *.example files. I've also added a file association thanks to install4j so my application is launched when the user double clicks any file with extension *.example

It seems that install4j sends the file path in the args[] so it should be easy to open that file and show it in my app. BUT what happens if the app is already running? I can only allow one instance of the application so, how can I know that the user is opening a file?

I've found this: http://resources.ej-technologies.com/install4j/help/api/com/install4j/api/launcher/StartupNotification.html

But I still don't understand how should I use it and what should I add in my app to listen for this event. Where can I find an example?


回答1:


Based on the documentation you linked to, it looks like you can do this:

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

Since startupPerformed will be called from different threads, you will need to make sure that the code that handles these notifications is thread-safe.

The documentation also says:

For multiple files, files are surrounded by double-quotes and separated by spaces.

So you will need to parse the parameter string yourself as well.



来源:https://stackoverflow.com/questions/16299293/listen-for-open-file-with-my-java-application-event-on-windows

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!