Escrever um arquivo dentro de um JAR

Olá Pessoal
Estou implementando um método que escreve um código dentro de arquivo que está loclizado dentro de um .JAR

como faço:

String fileArq = "/bkpconf/"+arquivo;
URL urlFile = Tipos.class.getResource(fileArq );
		File file  = new File (urlFile.getFile());
			if (file.exists())
			{
				if (file.canWrite())
				{
					fw = new FileWriter(file , true);
					fw.write(codigo+"\n\n");
					fw.flush();
				}
			}
			else
			{
				JOptionPane.showMessageDialog(null,urlFile.getFile(),"Arquivo", JOptionPane.INFORMATION_MESSAGE);
			}

No eclipse ele está rodando normalmente mas ao exportar o .JAR ele não encontra o arquivo que estou querendo escrever.

Será que preciso abrir o JAR e depois escrever ? ou seja unzip no JAR?
Em anexo está o caminho absoluto do arquivo ele está pegando correto , mas nao entendi prq ele nao encontra

Não dá pra gravar um arquivo dentro do JAR. A não ser que vc remonte o JAR.

Olá Daniel,
será que as classes: ZipEntry e ZipInputStream consiguo abrir o JAR e escrever o arquivo?

Se o seu Jar contiver classes que já foram carregadas pelo seu sistema, e se você estiver rodando em Windows, então o Jar fica “travado” contra modificação, pois há uma otimização no classloader da JVM que conserva os arquivos .jar abertos para acessar mais rapidamente as classes. Como o arquivo fica já aberto, o Windows não deixa você reabrir o arquivo para escrever nele :frowning:

A solução é retirar o diretorio bkconf dentro JAR o problema se o usuáro deletar o bkconf :twisted: , esse é o motivo do dir dentro do JAR