Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: rommel360 en Octubre 29, 2018, 07:51:42 PM

Título: Fallo al escribir Propertie dentro de Archivos de Programa uzando Java
Publicado por: rommel360 en Octubre 29, 2018, 07:51:42 PM
hice una palicacion en JAva que lee un archivo propertie que esta dentro de la carpeta de Archivos de Programa (x86) alli esta mi Archivo Jar una imgen tipo ICO y una carpeta de nombre Configuracion que contiene el Propertie a Leer

(https://i.imgur.com/7VxDecV.png)

este Archivo Propertie que guarda la configuración de una conexión hacia una base de datos en SQL Server 2008 esta dentro de la carpeta configuración

(https://i.imgur.com/7YPZYkw.png)

Ahora la aplicacion Java debe de leer dicho archivo para cargar la configuracion en la venta que se llama Configuracion.

Pero a la hora de leerlo aparece el error que no tengo acceso

(https://i.imgur.com/7DllSZD.png)

Como puedo hacer para que no salga eso.

Espero haberme explicado bien.

Aqui mi codigo en Java para leer un Archivo Propertie

Código (java) [Seleccionar]
package cargarNuevosMedicamentosSigho;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import java.util.Properties;

import javax.swing.JOptionPane;

public class propertie extends Properties{

private InputStream propertiesStream;

public propertie() {
try
{
//File f = new File("/tt/configuracionConexion.properties");
//FileOutputStream out = new FileOutputStream( "configuracion/configuracionConexion.properties" );
//propertiesStream = new FileReader(("configuracion/configuracionConexion.properties"));
//propertiesStream = ClassLoader.getSystemResourceAsStream(( "configuracion/configuracionConexion.properties" ) );
load( new FileReader( "configuracion/configuracionConexion.properties" ));
//load( propertiesStream );
/*ClassLoader myCL = propertie.class.getClassLoader();
            load(
                myCL.getResourceAsStream(
                    "srcs/configuracionConexion.properties"));*/
}
catch (FileNotFoundException e)
{
JOptionPane.showMessageDialog( null, "EL ARCHIVO CONFIGURACI\u00D3N CONEXI\u00D3N NO SE ENCUENTRA \n" + e.getMessage(), "ERROR", JOptionPane.ERROR_MESSAGE );
System.exit( 1 );
}
catch (IOException e)
{
JOptionPane.showMessageDialog( null, "EL ARCHIVO CONFIGURACI\u00D3N CONEXI\u00D3N PUEDE ESTAR CORRUPTO \n" + e.getMessage(), "ERROR", JOptionPane.ERROR_MESSAGE );
System.exit( 1 );
}
}

public void cerrarProperties()
{
try
{
propertiesStream.close();
}
catch (IOException e)
{
JOptionPane.showMessageDialog( null, "FALLO AL CERRAR EL ARCHIVO CONFIGURACI\u00D3N CONEXI\u00D3N \n" + e.getMessage(), "ERROR", JOptionPane.ERROR_MESSAGE );
System.exit( 1 );
}
}

public String[] getValoresProperties()
{
String[] valores = new String[ 5 ];

valores[ 0 ] = getProperty("servidor.nombre");
valores[ 1 ] = getProperty("servidor.puerto");
valores[ 2 ] = getProperty("servidor.base_datos");
valores[ 3 ] = getProperty("servidor.usuario");
valores[ 4 ] = getProperty("servidor.password");

return valores;
}

public void setValoresProperties( String... valores)
{
setProperty("servidor.nombre", valores[ 0 ] );
setProperty("servidor.puerto", valores[ 1 ] );
setProperty("servidor.base_datos", valores[ 2 ] );
setProperty("servidor.usuario", valores[ 3 ] );
setProperty("servidor.password", valores[ 4 ] );
}

public void salvarValores()
{
try
{
//File f = new File(getClass().getResource("configuracionConexion.properties").toURI());
        OutputStream out = new FileOutputStream( "configuracion/configuracionConexion.properties" );
//store(new FileOutputStream( f ) ,"un comentario");
store( out,"un comentario" );
}
catch (IOException e)
{
JOptionPane.showMessageDialog( null, "FALLO AL ESCRIBIR EL ARCHIVO CONFIGURACI\u00D3N CONEXI\u00D3N \n" + e.getMessage(), "ERROR", JOptionPane.ERROR_MESSAGE );
System.exit( 1 );
}
}
}



Lo raro que si lo compilo para 64 bits  lo guardo en Archivos de Programa no en de Archivos de Programa (X86) el programa si funciona bien, este error de Acceso denegado solo me pasa si la compilo para 32bits para guardarlo en la carpeta Archivos de Programa( X86 )


Pos que instalo una maquina virtual e instalo windows 7 de 32 bits, luego instalo el jdk de 32 bits y pego la carpeta de mi proyecto compilado con el JDK de 64 bits en Archivos de Programa y pos que si funciona jajajajaja