Galera,
Tem como eu abrir uma pasta que está dentro de um jar que está em execução? Ou seja, estou rodando o jar Programa.jar. Dentro de Programa.jar, tenho uma pasta a Ramais. Como abrir essa pasta e executar seus arquivos?
É possível???
Valeussss!!!
Eu tive que fazer um esquema de executar um arquivo .exe dentro do meu jar. Não consegui fazer diretamente, tive que copiar o arquivo de dentro do jar para a pasta temp do sistema e aí então executá-lo. Segue o código.
//cria o arquivo temporário onde "shutdown" é o nome do arquivo e ".exe" é a extensão
File shutdownTemp = File.createTempFile("shutdown", ".exe");
//resources/util é o diretório dentro do jar onde o meu arquivo EXE se encontra
BufferedInputStream from = new BufferedInputStream(getClass().getResourceAsStream("/resources/util/shutdown.exe"), 16384);
BufferedOutputStream to = new BufferedOutputStream(new FileOutputStream(shutdownTemp), 16384);
//alocando buffer
byte[] buffer = new byte[16384];
//copia o arquivo
while (from.read(buffer) != -1)
{
to.write(buffer);
}
//fecha os streams
from.close();
to.close();
//executa o arquivo
Runtime.getRuntime().exec(shutdownTemp.getAbsolutePath()+" -u -t 30");
Espero que tenha ajudado =D
Cara,
Valeu pela ajuda, mas precisava de uma solução que funcione tbem em linux! Mas valeu, mesmo assim.
Claro q funciona… óbvio que se for arquivo .exe como no exemplo não irá funcionar, mas de resto vai ser tudo igual…
- Cria um arquivo temporário vazio na pasta temp do sistema
- Cria o stream de entrada apontando para o arquivo dentro do seu jar
- Cria o stream de saida apontando para o arquivo temporário na pasta temp
- Copia o conteúdo da entrada para a saida
- Fecha os streams
- Executa o arquivo com o mesmo comando que vc usaria no console
[]'s
Entendi, mas seu exemplo é usado para criar um arquivo. No meu caso preciso criar uma pasta, onde nessa pasta existe um .jar e uma pasta lib, e eu não encontrei nada do tipo createTempFolder. Podes me ajudar?