Boa tarde comunidade, estou trabalhando em um projeto de um bloco de notas em java que abra arquivos txt e outros. O problema é que eu queria uma forma de fazer meu programa aparecer entre as sugestões do sistema para ser o programa padrão para abrir arquivos txt, e no caso do usuário desejar que seja padrão, o clique duplo no arquivo leve a um método do programa que receba o endereço do arquivo e abra com este arquivo. Alguém sabe de uma maneira de fazer? Grato aos que responderem.
Software em Java se tornar uma sugestão a abrir determiando tipo de arquivo no SO.[RESOLVIDO]
19 Respostas
Abra uma linha de comando e digite os seguintes comandos:
assoc /?
ftype /?
Leia a informação que eles mostram.
Acho que desde o Java 1.6 todos os jar são marcados para abrir com o java.exe por padrão.
Então você precisa distribuir sua app em jar e no windows explorer, ferramentas, opções de pasta alterar o .txt do notepad pro seu jar.
Acho que isso resolve de maneira manual.
Funcionando, é possível automatizar a seleção como default, alterando o registro do windows.
No seu jar, precisa setar o parametro main-class no manifest dentro da pasta meta-inf
Ao escolher a opção exportar em um projeto no eclipse, essas opções são sugeridas.
Para fazer isso no windows é necessário adicionar determinadas chaves no registro. Você pode fazer isso via um script de instalação ou mexendo registro manualmente (não sei se existe alguma biblioteca do java para manipular o registro diretamente). Para isso execute as seguintes Operações.
- Abra a chave HKEY_CLASSES_ROOT
- Dentro dela crie uma chave chamada .ExtensaoDoSeuArquivo
- Dentro dessa nova chave crie um valor no formato texto contendo A descrição desse Arquivo, por exemplo “ArquivoTextoJava”
- Volte para raiz HKEY_CLASSES_ROOT e crie uma nova Chave com o valor utilizado no item 4, por exemplo “ArquivoTextoJava”
- Abra essa chave e:
5.1) Dentro dessa chave crie um valor para a descrição do arquivo. Exemplo “Arquivo de Texto para o Editor Java”
5.2) Crie uma outra chave chamada “DefaultIcon” e a abra.
5.2.1)Agora crie um novo valor de texto e adicione o caminho para o icone. Se o caminho do icone apontar para um execútavel ou dll, é necessário indicar qual icone se deseja. Exemplo “C:\Meu Programa\programa.exe,1”
5.3) Volte para a raiz da chave criada no item 4. Adicione agora uma nova pasta chamada “Shell” e abra essa pasta.
5.3.1) Crie dentro dessa chave uma pasta chamada Open e dentro dessa crie uma chave chamada Command
5.3.2) Dentro dessa crie uma chave com o caminho para o local do aplicativo com o qual deseja abrir o arquivo. Exemplo: C:\Meu Programa\programa.exe “%1”
…
5.3.2) Dentro dessa crie uma chave com o caminho para o local do aplicativo com o qual deseja abrir o arquivo. Exemplo: C:\Meu Programa\programa.exe “%1”
Que trabalhão hein

E em Java complica mais ainda, porque não tem um executável. Tem que invocar a JVM, passando o programa Java e mais o argumento que o programa vai usar.
O comando para abrir o arquivo ficaria parecido com esse:
C:\Program Files\Java\jre7_u10\bin\javaw.exe -jar C:\Program Files\NotepadAlternativo\Notepad.jar %1O que já traz de brinde outro problema, precisaria descobrir o caminho do Java quando estiver configurando o produto.
Por essas e outras é que Java e aplicativos para PC não combinam …
…
5.3.2) Dentro dessa crie uma chave com o caminho para o local do aplicativo com o qual deseja abrir o arquivo. Exemplo: C:\Meu Programa\programa.exe “%1”
Que trabalhão hein
E em Java complica mais ainda, porque não tem um executável. Tem que invocar a JVM, passando o programa Java e mais o argumento que o programa vai usar.
O comando para abrir o arquivo ficaria parecido com esse:
C:\Program Files\Java\jre7_u10\bin\javaw.exe -jar C:\Program Files\NotepadAlternativo\Notepad.jar %1O que já traz de brinde outro problema, precisaria descobrir o caminho do Java quando estiver configurando o produto.Por essas e outras é que Java e aplicativos para PC não combinam …
Na verdade isso não é restrição do java com um executável seria a mesma coisa. O ideal para isso é usar um instalador!
…
5.3.2) Dentro dessa crie uma chave com o caminho para o local do aplicativo com o qual deseja abrir o arquivo. Exemplo: C:\Meu Programa\programa.exe “%1”
Que trabalhão hein
E em Java complica mais ainda, porque não tem um executável. Tem que invocar a JVM, passando o programa Java e mais o argumento que o programa vai usar.
O comando para abrir o arquivo ficaria parecido com esse:
C:\Program Files\Java\jre7_u10\bin\javaw.exe -jar C:\Program Files\NotepadAlternativo\Notepad.jar %1O que já traz de brinde outro problema, precisaria descobrir o caminho do Java quando estiver configurando o produto.Por essas e outras é que Java e aplicativos para PC não combinam …
Acredito que não precisemos de toda esta complicação, e sim apenas de um método main que pegue o argumento do endereço e manipule se ele existir.
Acredito que não precisemos de toda esta complicação, e sim apenas de um método main que pegue o argumento do endereço e manipule se ele existir.
Vc não deve ter entendido o que ele quer! Ele quer associar o programa dele com extensões de arquivo do sistema operacional
Para fazer isso no windows é necessário adicionar determinadas chaves no registro. Você pode fazer isso via um script de instalação ou mexendo registro manualmente (não sei se existe alguma biblioteca do java para manipular o registro diretamente). Para isso execute as seguintes Operações.
- Abra a chave HKEY_CLASSES_ROOT
- Dentro dela crie uma chave chamada .ExtensaoDoSeuArquivo
- Dentro dessa nova chave crie um valor no formato texto contendo A descrição desse Arquivo, por exemplo “ArquivoTextoJava”
- Volte para raiz HKEY_CLASSES_ROOT e crie uma nova Chave com o valor utilizado no item 4, por exemplo “ArquivoTextoJava”
- Abra essa chave e:
5.1) Dentro dessa chave crie um valor para a descrição do arquivo. Exemplo “Arquivo de Texto para o Editor Java”
5.2) Crie uma outra chave chamada “DefaultIcon” e a abra.
5.2.1)Agora crie um novo valor de texto e adicione o caminho para o icone. Se o caminho do icone apontar para um execútavel ou dll, é necessário indicar qual icone se deseja. Exemplo “C:\Meu Programa\programa.exe,1”
5.3) Volte para a raiz da chave criada no item 4. Adicione agora uma nova pasta chamada “Shell” e abra essa pasta.
5.3.1) Crie dentro dessa chave uma pasta chamada Open e dentro dessa crie uma chave chamada Command
5.3.2) Dentro dessa crie uma chave com o caminho para o local do aplicativo com o qual deseja abrir o arquivo. Exemplo: C:\Meu Programa\programa.exe “%1”
Fazer isto de forma automatizada é a questão agora. Alguém tem uma sugestão?
Para fazer isso no windows é necessário adicionar determinadas chaves no registro. Você pode fazer isso via um script de instalação ou mexendo registro manualmente (não sei se existe alguma biblioteca do java para manipular o registro diretamente). Para isso execute as seguintes Operações.
- Abra a chave HKEY_CLASSES_ROOT
- Dentro dela crie uma chave chamada .ExtensaoDoSeuArquivo
- Dentro dessa nova chave crie um valor no formato texto contendo A descrição desse Arquivo, por exemplo “ArquivoTextoJava”
- Volte para raiz HKEY_CLASSES_ROOT e crie uma nova Chave com o valor utilizado no item 4, por exemplo “ArquivoTextoJava”
- Abra essa chave e:
5.1) Dentro dessa chave crie um valor para a descrição do arquivo. Exemplo “Arquivo de Texto para o Editor Java”
5.2) Crie uma outra chave chamada “DefaultIcon” e a abra.
5.2.1)Agora crie um novo valor de texto e adicione o caminho para o icone. Se o caminho do icone apontar para um execútavel ou dll, é necessário indicar qual icone se deseja. Exemplo “C:\Meu Programa\programa.exe,1”
5.3) Volte para a raiz da chave criada no item 4. Adicione agora uma nova pasta chamada “Shell” e abra essa pasta.
5.3.1) Crie dentro dessa chave uma pasta chamada Open e dentro dessa crie uma chave chamada Command
5.3.2) Dentro dessa crie uma chave com o caminho para o local do aplicativo com o qual deseja abrir o arquivo. Exemplo: C:\Meu Programa\programa.exe “%1”Fazer isto de forma automatizada é a questão agora. Alguém tem uma sugestão?
Como eu mesmo falei use um instalador! Eu uso o Inno Setup e o ISTool que uma interface gráfica para geração dos scripts do Inno Setup.
[quote=x@ndy]
C:\Program Files\Java\jre7_u10\bin\javaw.exe -jar C:\Program Files\NotepadAlternativo\Notepad.jar %1Na verdade isso não é restrição do java com um executável seria a mesma coisa. O ideal para isso é usar um instalador!
No script do instalador é possível descobrir onde o Java está instalado? Se for então está tranquilo.
[quote=gomesrod]
C:\Program Files\Java\jre7_u10\bin\javaw.exe -jar C:\Program Files\NotepadAlternativo\Notepad.jar %1Na verdade isso não é restrição do java com um executável seria a mesma coisa. O ideal para isso é usar um instalador!
No script do instalador é possível descobrir onde o Java está instalado? Se for então está tranquilo.
O instalador permite acessar o registro e por lá da para ver o aonde está instalado, a versão, etc!
Para fazer isso no windows é necessário adicionar determinadas chaves no registro. Você pode fazer isso via um script de instalação ou mexendo registro manualmente (não sei se existe alguma biblioteca do java para manipular o registro diretamente). Para isso execute as seguintes Operações.
- Abra a chave HKEY_CLASSES_ROOT
- Dentro dela crie uma chave chamada .ExtensaoDoSeuArquivo
- Dentro dessa nova chave crie um valor no formato texto contendo A descrição desse Arquivo, por exemplo “ArquivoTextoJava”
- Volte para raiz HKEY_CLASSES_ROOT e crie uma nova Chave com o valor utilizado no item 4, por exemplo “ArquivoTextoJava”
- Abra essa chave e:
5.1) Dentro dessa chave crie um valor para a descrição do arquivo. Exemplo “Arquivo de Texto para o Editor Java”
5.2) Crie uma outra chave chamada “DefaultIcon” e a abra.
5.2.1)Agora crie um novo valor de texto e adicione o caminho para o icone. Se o caminho do icone apontar para um execútavel ou dll, é necessário indicar qual icone se deseja. Exemplo “C:\Meu Programa\programa.exe,1”
5.3) Volte para a raiz da chave criada no item 4. Adicione agora uma nova pasta chamada “Shell” e abra essa pasta.
5.3.1) Crie dentro dessa chave uma pasta chamada Open e dentro dessa crie uma chave chamada Command
5.3.2) Dentro dessa crie uma chave com o caminho para o local do aplicativo com o qual deseja abrir o arquivo. Exemplo: C:\Meu Programa\programa.exe “%1”Fazer isto de forma automatizada é a questão agora. Alguém tem uma sugestão?
Como eu mesmo falei use um instalador! Eu uso o Inno Setup e o ISTool que uma interface gráfica para geração dos scripts do Inno Setup.
Mas como esta associação ao formato seria feita? Quero dizer, em que parte da criação do instalador.
Mas como esta associação ao formato seria feita?
Ai é com o windows! É essas são as configurações que ele necessita para saber que com qual arquivo um executável deve abrir!
Mas como esta associação ao formato seria feita? Quero dizer, em que parte da criação do instalador.
O instalador é um scritp, você define quais os passos dele e a onde isso deva ficar. Eu pessoalmente faria logo após criar todas as pastas, ao final da instalação.
Mas como esta associação ao formato seria feita?Ai é com o windows! É essas são as configurações que ele necessita para saber que com qual arquivo um executável deve abrir!
Agradeço muito por estar respondendo. Mas não me refiro ao executável jar abrir com java, e sim, txt abrir com o aplicativo em jar que criei!
Mas como esta associação ao formato seria feita?Ai é com o windows! É essas são as configurações que ele necessita para saber que com qual arquivo um executável deve abrir!
Agradeço muito por estar respondendo. Mas não me refiro ao executável jar abrir com java, e sim, txt abrir com o aplicativo em jar que criei!
Você não entendeu. Essas configurações são para o windows saber com qual executável vai abrir um arquivo. Pode ser txt, .dat, etc. O executável pode ser seu jar, um arquivo .scm, etc.
Mas como esta associação ao formato seria feita?Ai é com o windows! É essas são as configurações que ele necessita para saber que com qual arquivo um executável deve abrir!
Agradeço muito por estar respondendo. Mas não me refiro ao executável jar abrir com java, e sim, txt abrir com o aplicativo em jar que criei!
Você não entendeu. Essas configurações são para o windows saber com qual executável vai abrir um arquivo. Pode ser txt, .dat, etc. O executável pode ser seu jar, um arquivo .scm, etc.
Então esse script já inseriria as chaves no registro né? Se não for muito incômodo, você poderia postar um trecho aqui só pra ter uma base? Ah, e obrigado pelas respostas 
Mas como esta associação ao formato seria feita?Ai é com o windows! É essas são as configurações que ele necessita para saber que com qual arquivo um executável deve abrir!
Agradeço muito por estar respondendo. Mas não me refiro ao executável jar abrir com java, e sim, txt abrir com o aplicativo em jar que criei!
Você não entendeu. Essas configurações são para o windows saber com qual executável vai abrir um arquivo. Pode ser txt, .dat, etc. O executável pode ser seu jar, um arquivo .scm, etc.
Então esse script já inseriria as chaves no registro né? Se não for muito incômodo, você poderia postar um trecho aqui só pra ter uma base? Ah, e obrigado pelas respostas :)
Infelizmente não tenho nenhum código disponível no momento, mas a documentação do Inno Setup é muito boa e existem muita informação na internet
Muito obrigado pelas respostas, ajudaram bastante!