Если вы не хотите использовать Java Web Start, как предложил Эндрю, и хотели бы узнать, как Windows работает с приложениями по умолчанию, вот краткое руководство:
Когда вы щелкаете правой кнопкой мыши -> Открыть с помощью ... и устанавливаете что-то как приложение по умолчанию, в HKEY_CLASSES_ROOT
создается значение реестра с именем "somefileextension_auto_file" и ключом "/shell/open/command" (так, 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 работает с приложениями по умолчанию. Может быть, я помогу другому читателю. Кто знает.