Tengo una aplicación que hice hace ya algun tiempo en java y utiliza xml para guardar datos, en WinXP funcionaba perfecto, cuando llego WinVista y Win7 tuve problemas al momento de crear los xml, lo solucione pidiendo al usuario que desactivara el control de usuarios en el panel de control (no muy elegante pero funicionaba), ahora en W8 pasa lo mismo pero desactivando el control de usuarios no me soluciona el problema, la excepcion que me lanza el programa es la siguiente:
Código:
El problema se da cuando trata de crear un archivo en C:\Windows, el codigo es el siguiente:feb 25, 2013 9:49:03 AM planestrategicoynegocios.common.Main <init> SEVERE: null java.io.FileNotFoundException: C:\Windows\cdPLN.xml (Acceso denegado) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:212) at java.io.FileOutputStream.<init>(FileOutputStream.java:104) at java.io.PrintWriter.<init>(PrintWriter.java:184) at planestrategicoynegocios.bean.data.CaducidadData.guardar(CaducidadData.java:59) at planestrategicoynegocios.bean.data.CaducidadData.<init>(CaducidadData.java:35) at planestrategicoynegocios.common.Main.<init>(Main.java:117) at planestrategicoynegocios.common.Main.main(Main.java:356)
Aqui llama a la capa de datos que creara el archivo:
Código:
El constructor que se llama hace lo siguiente:CaducidadData caducidadDataNoEncontrado = new CaducidadData("C:\\Windows\\cdPLN.xml", "cdPLN.xml");
Código:
Y este es el metodo guardar crear el archivopublic CaducidadData(String rutaArchivo, String nombreRaiz) throws IOException { this.rutaDocumento = rutaArchivo; this.raiz = new Element(nombreRaiz); this.document = new Document(raiz); guardar(); }
Código:
Según creo el problema es que W8 no me da permisos para guardar mi xml en la direccion (me da el mismo problema cuando el programa trata de guardar xml en C:\Archivos de Programa/MiPrograma/XML.xml) lo que no se es como darle los permisos, alguien tiene alguna pista de como resolver esto??private void guardar() throws IOException { //Formato de salida Format format = Format.getPrettyFormat(); format.setEncoding("ISO-8859-1"); XMLOutputter outputter = new XMLOutputter(format); //Escribe en el archivo fÃ*sico almacenado en disco outputter.output(document, new PrintWriter(this.rutaDocumento)); }
Saludos,