Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

associating a custom file extension with java app in windows

Tags:

java

file

windows

I would like to "link" few file extensions to my java application under windows. When user double clicks file with "linked" extension, I would like to open my app and I need to know path to file that launched app.

like image 516
dario111cro Avatar asked Mar 04 '12 16:03

dario111cro


2 Answers

If you deploy the app. using Java Web Start, an interest in file-types can be declared in the launch file. See the demo. of the file services, which..

..prompts the user to associate file extension .zzz (simply a file type unlikely to clash with existing file associations) of content type text/sleepytime. ..

When the user double clicks a .zzz file, it should open in the app. Actually, the word 'prompts' there is not the whole story. If you launch the sand-boxed version you will be prompted as to associating the file-type. The trusted version does not prompt.

To add more user-control to the process, look to the IntegrationService that was introduced in 1.6.0_18 (I don't have a demo. of that one yet). You might run it at start-up, after checking with the user.

like image 145
Andrew Thompson Avatar answered Nov 07 '22 17:11

Andrew Thompson


this would have to be done during installation. how are you planning on letting your user install your application?

you have to realize at this stage that you just made things a whole lot more complicated. registering file extensions means meddling with the registry. what happens if the user doesn't want your application anymore? or moves the file that launches your application?

you'll have to pick an installation creator. here's a so question about that: https://stackoverflow.com/questions/3767/what-is-the-best-choice-for-building-windows-installers

and then you'll have to learn that installer creator's language. here's how what you're asking for is done in nsis. remember that the script takes care of questions like "if the user uninstalls my application, and i didn't change the file associations at install time, should i then remove these file associations on uninstall?" so it's a bit long. here it is anyways: http://nsis.sourceforge.net/File_Association

maybe it can be done in an easier way in another installer creator.

however, in this example, you give the register function of nsis the start command for your application, and then it adds %1 to it in the start command of the windows file association. so you should give it the start command

javaw -cp installpath\yourcode.jar package.name.MainClassName

and then things should work out. this will take some experimenting of course, and you will have to be quite sure about how to start your application from the command line.

good luck!

like image 38
davogotland Avatar answered Nov 07 '22 17:11

davogotland