Se você preferir não usar o Java Web Start como Andrew sugeriu e gostaria de aprender como o Windows lida especificamente com aplicativos padrão, aqui está um guia rápido:
Quando você clicar com o botão direito - > Abrir com ... e definir algo como um aplicativo padrão, um valor de registro será criado em HKEY_CLASSES_ROOT
com o nome "somefileextension_auto_file" e uma chave "/ shell / open / command "(assim, HKEY_CLASSES_ROOT\somefileextension_auto_file\shell\Open\command
). O valor da string padrão desta chave é o comando shell a ser executado quando um arquivo de somefileextension
type é clicado duas vezes. O valor padrão criado é parecido com "c:\program files\somepath\test.exe" %1
, em que% 1 será uma variável contendo o caminho completo para o arquivo que foi clicado duas vezes.
Se você quisesse programar programaticamente seu arquivo jar como o aplicativo padrão para uma determinada extensão de arquivo, seria necessário criar a chave do registro em HKEY_CLASSES_ROOT\somefileextension_auto_file\shell\Open\command
com um valor padrão semelhante ao seguinte:
java -jar c:\somewhere\yourJarFile.jar %1
e seu programa precisaria detectar quando um argumento de linha de comando foi dado a ele usando public static void main(String[] args)
onde args[1]
seria o caminho para o arquivo que foi clicado. Se um argumento de linha de comando foi dado, seu programa deve automaticamente tentar usá-lo como um arquivo de entrada.
Nota: Isso realmente não deve ser feito manualmente, pois o Java foi projetado para ser multi-plataforma e, como tal, existem soluções de plataforma cruzada ( link ), mas parece que o autor da pergunta estava interessado em como o Windows realmente lida com aplicativos padrão. Talvez eu ajude outro leitor. Quem sabe.