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?
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ãoFileshutdownTemp=File.createTempFile("shutdown",".exe");//resources/util é o diretório dentro do jar onde o meu arquivo EXE se encontraBufferedInputStreamfrom=newBufferedInputStream(getClass().getResourceAsStream("/resources/util/shutdown.exe"),16384);BufferedOutputStreamto=newBufferedOutputStream(newFileOutputStream(shutdownTemp),16384);//alocando bufferbyte[]buffer=newbyte[16384];//copia o arquivo while(from.read(buffer)!=-1){to.write(buffer);}//fecha os streamsfrom.close();to.close();//executa o arquivo Runtime.getRuntime().exec(shutdownTemp.getAbsolutePath()+" -u -t 30");
Espero que tenha ajudado =D
B
brunoblas
Cara,
Valeu pela ajuda, mas precisava de uma solução que funcione tbem em linux! Mas valeu, mesmo assim.
J
javazilla
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
B
brunoblas
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?