Problema no nome do arquivo

2 respostas
T

Pessoal, bom dia. :slight_smile:

Estou com problemas para criar um arquivo txt. O nome do arquivo é criado conforme o usuário desejar. A aplicação tem por objetivo apenas executar um comando DOS pelo programa java.

vou postar o código criado para realizar o procedimento:

try 
        {
            String caminhoXML = "keytool -list -keystore \"D:\\JSSECACERTS\" -storepass changeit".replace("keytool -list -keystore", "").replace("-storepass changeit", "");
            //String caminhoXML = args[0].replace("keytool -list -keystore", "").replace("-storepass changeit", "");
            System.out.println(caminhoXML);
            int index = caminhoXML.lastIndexOf("\\"); 
            caminhoXML = (caminhoXML.substring(0, index+1) + "thiago_repositorio.txt");       
            OutputStream os = new FileOutputStream(caminhoXML, false);
            PrintStream ps = new PrintStream(os);
            System.setOut(ps);
            InputStream is = Runtime.getRuntime().exec("keytool -list -keystore \"C:\\Users\\thiago.beserra\\Dropbox\\JSSECACERTS\" -storepass changeit").getInputStream();
            //InputStream is = Runtime.getRuntime().exec(args[0]).getInputStream();
            if(is!= null)
            {
                Writer writer = new StringWriter();
                char[] buffer = new char[1024];
                try 
                {
                    Reader reader = new BufferedReader(new InputStreamReader(is, "ISO8859-1"));
                    int n;
                    while ((n = reader.read(buffer)) != -1) 
                    {
                        writer.write(buffer, 0, n);
                    }
                } finally 
                {
                    is.close();
                }
                System.out.println(writer.toString());
            }  
        } 
        catch (IOException ex) 
        {
            Logger.getLogger(LeRepositorioJKS.class.getName()).log(Level.SEVERE, null, ex);
        }

Estou obtendo a seguinte saida no console do NetBeans:

"D:\JSSECACERTS" Mai 06, 2013 10:35:04 AM lerepositoriojks.LeRepositorioJKS main SEVERE: null java.io.FileNotFoundException: "D:\thiago_repositorio.txt (A sintaxe do nome do arquivo, do nome do diretório ou do rótulo do volume está incorreta) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:212) at java.io.FileOutputStream.<init>(FileOutputStream.java:136) at lerepositoriojks.LeRepositorioJKS.main(LeRepositorioJKS.java:31)

Por que não consigo criar o arquivo utilizando este procedimento? Lembrando que se eu colocar o caminho do arquivo diretamente na mão, este executa com sucesso.

OutputStream os = new FileOutputStream("D:\\thiago_repositorio.txt", false);

Agradeço desde já. :slight_smile:

2 Respostas

T

Na linha

String caminhoXML = "keytool -list -keystore \"D:\\JSSECACERTS\" -storepass changeit".replace("keytool -list -keystore", "").replace("-storepass changeit", "");

Você não removeu as aspas duplas antes da letra D. Por isso as aspas estão indo para a variável caminhoXML. Mude seu replace para contemplar a aspa.

T

Obrigado meu amigo. Vou alterar aqui no programa.

Valeu mesmo! :smiley:

Criado 6 de maio de 2013
Ultima resposta 7 de mai. de 2013
Respostas 2
Participantes 2