Pessoal, durante a execução minha aplicação faz uma leitura e, posteriormente, escrita em um arquivo TXT que fica noa mesmo diretório do .JAR. Até aí tudo bem. O problema é:
Enquanto meu .JAR esta na area de trabalho ele faz a leitura e escrita normalmente, mas quando instalo e ele vai pra diretório do tipo C:\Program Files… ele somente le o arquivo TXT mas dá exceção quando vai escrever. A exceção é
[quote=cv]Qual o menor trecho de codigo que vc pode representar aqui pra demonstrar o problema?
(Nem todo mundo vai ter acesso a uma maquina rodando Windows, btw)[/quote]
package br.edu.anglo.JLABRO.DAO;
import java.io.File;
public class FileTXT {
// Faz a leitura de um arquivo TXT cujo caminho é passado por parâmetro
public static String readFileTXT(String caminho) throws Exception {
Scanner input;
String texto = "";
try
{
input = new Scanner(new File(caminho));
while(input.hasNext())
{
texto += input.nextLine() + "\n";
}
if(input!=null)
input.close();
}
catch(Exception ex)
{
throw new Exception(ex);
}
return texto;
}
// Faz a escrita de um arquivo TXT através do texto e caminho do arquivo passados por parâmetro
public static boolean writeFileTXT(String texto, String caminho) throws Exception {
Formatter output;
try
{
output = new Formatter(caminho);
output.format(texto);
if(output!=null)
output.close();
return true;
}
catch(Exception ex)
{
throw new Exception(ex);
}
}
}
[quote=luizfelipetx]Você não pode escrever nesse diretorio,…
Restrição do windows…
Clica com o direito na sua pasta de arquivos de programas e libera a permissao
pra qualquer usuario poder ler escrecer e editar…
abcs[/quote]
Isso isso, tudo bem. Mas e se tiver no pc de outra pessoa? O instalador vai instalar lá. Não quero que a pessoa faça esse trabalho todo pra poder ter o programa funcionando certo.
Tem alguma forma de eu liberar a permissão pra um arquivo em específico? Alguma forma de implementar junto à aplicação algo que permita escrita nàquele arquivo??
[quote]
Isso isso, tudo bem. Mas e se tiver no pc de outra pessoa? O instalador vai instalar lá. Não quero que a pessoa faça esse trabalho todo pra poder ter o programa funcionando certo.
Tem alguma forma de eu liberar a permissão pra um arquivo em específico? Alguma forma de implementar junto à aplicação algo que permita escrita nàquele arquivo?? [/quote]
Siga a dica do amigo acima.Só instale aonde vc possa escrever.Dependendo da empresa, esses locais são beem controlados, e mês passado tive o mesmo problema que vc.Criei uma pasta TEMP para isso.Se não conseguir criá-la, mande uma exceção e nem deixe instalar o programa avisando problemas com permissão.Melhor resolver as restrições primeiro, do que deixar instalar o programa e depois alguem lhe dizer que “tem um bug”!
[quote=Ironlynx][quote]
Isso isso, tudo bem. Mas e se tiver no pc de outra pessoa? O instalador vai instalar lá. Não quero que a pessoa faça esse trabalho todo pra poder ter o programa funcionando certo.
Tem alguma forma de eu liberar a permissão pra um arquivo em específico? Alguma forma de implementar junto à aplicação algo que permita escrita nàquele arquivo?? [/quote]
Siga a dica do amigo acima.Só instale aonde vc possa escrever.Dependendo da empresa, esses locais são beem controlados, e mês passado tive o mesmo problema que vc.Criei uma pasta TEMP para isso.Se não conseguir criá-la, mande uma exceção e nem deixe instalar o programa avisando problemas com permissão.Melhor resolver as restrições primeiro, do que deixar instalar o programa e depois alguem lhe dizer que “tem um bug”! [/quote]
Galera,
Minha solução foi instalar o programa normalmente C:\Program files… e criar uma pasta dentro da pasta do usuário logado. Lá eu posso ler e escrever em arquivos.
Pra pegar o diretório do usuário logado no java é só usar o comando: