Foros del Web » Programación para mayores de 30 ;) » Java »

leer archivo de texto incluido en jar

Estas en el tema de leer archivo de texto incluido en jar en el foro de Java en Foros del Web. Buen dia ,tengo una aplicacion que a partir de un script genera una base de datos de mysql , si corro la aplicacion desde el ...
  #1 (permalink)  
Antiguo 03/12/2012, 13:03
Avatar de fahs82  
Fecha de Ingreso: abril-2012
Ubicación: guadalajara
Mensajes: 139
Antigüedad: 12 años
Puntos: 12
leer archivo de texto incluido en jar

Buen dia ,tengo una aplicacion que a partir de un script genera una base de datos de mysql , si corro la aplicacion desde el netbeans funciona a la perfeccion , pero una vez que compilo el jar me pasa una excepcion de javalangnullpointerexception
el script esta en un package llamado images que es donde tengo algunas imagenes que cargo y algunos otros recursos , lo extraño es que no me reconozca el archivo pero si las imagenes , posteo a continuacion mi codigo y agradesco la atencion de su tiempo , si alguien pudiera orientarme sobre que esta mal o que debo cambiar de el codigo

Código:
public void CrearBaseDatos(){
ConexionMySQL ConexionMysql = new ConexionMySQL();
Connection cn = ConexionMysql.ConectarServer();
try{
    
    
Statement stCrearBase = cn.createStatement();
stCrearBase.executeUpdate("drop DATABASE if exists JZAP");
stCrearBase.executeUpdate("create DATABASE JZAP");
ConstruirTablas();
}
catch(Exception ECrearDB){
JOptionPane.showMessageDialog(null,ECrearDB);
}
}    
public void ConstruirTablas()throws SQLException,IOException {
  
    
    InputStream is = ClassLoader.getSystemResourceAsStream("imagen/jzap.sql.txt");
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    
    try{
    String line = br.readLine();
    StringBuilder statement = new StringBuilder();
    while(line != null){
    line = line.trim();
    if(!line.startsWith("--") && !line.startsWith("#")){
    statement.append(line);
    if (line.endsWith(";")){
    executeLine(statement.toString());
    statement = new StringBuilder();
    }
    }
    line = br.readLine();
    }
    if(statement.length() > 0){
    executeLine(statement.toString());
    }
    }
    catch(Exception e){
    JOptionPane.showMessageDialog(null, e);
    }
       
}
  #2 (permalink)  
Antiguo 04/12/2012, 09:15
Avatar de hschimpf  
Fecha de Ingreso: junio-2009
Ubicación: in the World Wide Web
Mensajes: 140
Antigüedad: 14 años, 10 meses
Puntos: 17
Respuesta: leer archivo de texto incluido en jar

Nos ayudaria que nos digas en que linea te se lanza la excepcion NullPointerException.
Se me ocurre que en el jar compilado no estes almacenando el fichero TXT.

Suerte!
__________________
Hermann D. Schimpf
Visita mis repositorios de:
Clases Java: http://code.google.com/p/javaclassesrepository/
Clases PHP: http://code.google.com/p/phpclassesrepository/
  #3 (permalink)  
Antiguo 04/12/2012, 13:13
Avatar de fahs82  
Fecha de Ingreso: abril-2012
Ubicación: guadalajara
Mensajes: 139
Antigüedad: 12 años
Puntos: 12
Respuesta: leer archivo de texto incluido en jar

hola que tal, mira abriendo el jar con wl winrar me muestra perfectamente mi archivo , es decir se encuentra empaquetado en la carpeta correspondiente de la clase , en el debug de netbeans me corre perfectamente y no me lanza en ningun momento la excepcion , pero al correr el jar es cuando me muestra la excepcion , por pasos es en el momento en que debe abrir el fichero y comenzar a leerlo en la instruccion de ConstruirTablas();
  #4 (permalink)  
Antiguo 04/12/2012, 14:33
Avatar de fahs82  
Fecha de Ingreso: abril-2012
Ubicación: guadalajara
Mensajes: 139
Antigüedad: 12 años
Puntos: 12
De acuerdo Respuesta: leer archivo de texto incluido en jar

bien ya quedo solucionado , extrañamente tuve que acceder cambiando el constructor del inputstream a la siguiente forma

Código:
public void ConstruirTablas()throws SQLException,IOException {
  
    InputStream s = this.getClass().getResourceAsStream("/Imagen/jzap.txt");    
    BufferedReader br = new BufferedReader(new InputStreamReader(s));
    
    try{
    String line = br.readLine();
    StringBuilder statement = new StringBuilder();
    while(line != null){
    line = line.trim();
    if(!line.startsWith("--") && !line.startsWith("#")){
    statement.append(line);
    if (line.endsWith(";")){
    executeLine(statement.toString());
    statement = new StringBuilder();
    }
    }
    line = br.readLine();
    }
    if(statement.length() > 0){
    executeLine(statement.toString());
    }
    }
    catch(Exception e){
    JOptionPane.showMessageDialog(null, e);
    }
       
}
de aqui la documentacion donde encontre la solucion en sun

http://download.java.net/jdk8/docs/t...resources.html

espero le sea de ayuda a quien tenga el mismo problema que yo tuve , igualmente un agradecimiento a quienes tomaron su tiempo en leer el post

Etiquetas: archivo.txt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:11.