Abrir pasta dentro de um jar em execução

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?