если вы не хотите использовать Java Web Start, как предложил Эндрю, и хотите узнать, как Windows обрабатывает приложения по умолчанию, вот краткое руководство:
когда вы "щелкните правой кнопкой мыши -> открыть с помощью..."и что-то установить в качестве приложения по умолчанию, значение реестра в HKEY_CLASSES_ROOT
с именем " somefileextension_auto_file "и ключом" /shell/open/command " (so, HKEY_CLASSES_ROOT\somefileextension_auto_file\shell\Open\command
). Строковое значение по умолчанию этого ключа является командой оболочки, которая будет выполняться, когда файл somefileextension
тип - двойной щелчок. Созданное по умолчанию значение выглядит примерно так:"c:\program files\somepath\test.exe" %1
, где %1 будет переменной, содержащей полный путь к файлу, на который был сделан двойной щелчок.
если вы хотите программно сделать ваш файл jar приложением по умолчанию для определенного расширения файла, вам нужно будет создать раздел реестра в HKEY_CLASSES_ROOT\somefileextension_auto_file\shell\Open\command
со значением по умолчанию, подобным следующему:
java -jar c:\somewhere\yourJarFile.jar %1
и ваша программа должна была бы определить, когда командная строка аргумент был дан ему с помощью public static void main(String[] args)
здесь args[1]
будет путь к файлу, который был выбран. Если был указан аргумент командной строки, программа должна автоматически попытаться использовать его в качестве входного файла.
Примечание: это реально не стоит быть сделано вручную, как Java был разработан, чтобы быть кросс-платформенным и как таковые есть кросс-платформенные решения ( https://stackoverflow.com/tags/java-web-start/info) но, похоже, автор вопроса был интересует, как Windows на самом деле работает с приложениями по умолчанию. Может, Я помогу другому читателю. Кто знает.