Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [JAVA] Errore inizzializzazione VM

    Ho fatto (copiata da internet) una Classe di prova per collegarmi tramite JAVA ad un Database di Access ma in fase di compilazione mi da il seguente errore:


    Error occurred during initialization of VM
    Could not reserve enough space for object heap
    Errors compiling Elenco.


    Ha qualcuno è già capitato........

    Vi posto il codice

    codice:
    import java.sql.*;
    
    public class Elenco{ 
    
    private static Connection con; 
    private static Statement st; 
    private static ResultSet rs; 
    private static int nameCol; 
    private static String dbURL;
    
    public static void main(String arg[]){ 
    try{ 
    // aggancio il driver  
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    } catch(ClassNotFoundException e){ 
        System.out.println("Driver non trovato"); 
        System.exit(0); 
        } 
    try{ 
    // mi connetto al DB soc tramite il ponte dei driver jdbc:odbc < 
        dbURL = new String(arg[0]); // gli passiamo jdbc:odbc:soc 
        con = DriverManager.getConnection(dbURL); 
    } catch(SQLException sql){ 
        System.out.println("Errore connessione"); System.exit(0); 
    } 
    try { 
    // avviso che sto creando una query, uno statement 
        st = con.createStatement(); 
    } catch(SQLException s){ 
        System.out.println("Errore creazione statement"); 
    } 
    try{ 
    // chiedo di eseguire una select  il cui output venga messo // in una result table 
        rs = st.executeQuery("SELECT * FROM Dipendenti ORDER BY COGNOME"); 
    } catch(SQLException esql){ 
        System.out.println("Errore esecuzione statement"); 
    } 
    try{ 
    // individuo numericamente la colonna della tabella che  
    // m'interessa COGNOME 
        nameCol = rs.findColumn("COGNOME"); 
    } catch(SQLException a){ 
        System.out.println("Errore ricerca colonna"); 
    } 
    try{ 
    // finchè ci sono tuple le prelevo (fetch) 
        while(rs.next()){ 
        System.out.println(rs.getString(nameCol)); 
    } 
    } catch(SQLException as){ 
        System.out.println("Errore selzione dati"); 
    } 
    try{ 
    // quando ho finito chiudo prima lo statement 
    // poi la connessione 
        st.close(); 
        con.close(); 
    } catch(SQLException ad){ 
        System.out.println("errore chiusura DB"); 
    } 
    } 
    }

  2. #2
    Non mi è mai capitato ma credo che il problema non stia nel programma. Hai provato a controllare quanto spazio hai libero su disco?
    Prima di collegarti a database (non funziona quasi mai subito) prova il classico System.out.println("Hello world");
    ..::200 post il 1 settembre 2004::..
    ..::100 13/07/2004::..
    ..): Web Site (pazienza però) ..
    VASCO castiga chi non lecca la FIGA

  3. #3
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    E' successo anche a me quando usavo un pc con 64 MB di memoria, prova a riavviare.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

  4. #4
    Il PC ha 128 di RAM comunque ho disistallato sia SDK sia Netbeans ed ora funziona.

    Kateetak cosa significa "non funziona quasi mai subito".

    Comunque ora mi da un'eccezione :

    codice:
    dbURL = new String(arg[0]); // gli passiamo jdbc:odbc:soc
    ma cosa fa questa istruzione.....

    Grazie

  5. #5
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Error occurred during initialization of VM
    Could not reserve enough space for object heap
    Errors compiling Elenco.
    Be' A volte sono scherzi che windows e java fanno

    dbURL = new String(arg[0]); // gli passiamo jdbcdbc:soc
    Per creare una connessione devi dire al DriverManager dove trovare la connessione ebbene lo fai con questa stringa; in pratica prendi il parametro passato in ingresso che corrisponde ad arg[0] e lo utilizzi come url ( per chiarezza sarebbe stato lo stesso se tu avessi utilizzato dbUrl = arg[0] ); passando jdbcdbc:soc dici al drivermanager che il tuo db si trova nell'origine dati del tuo pc e che si chiama soc.
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  6. #6
    Non funziona quasi mai subito perchè connettersi a db richiede vari passaggi... ed è facile sbagliare.
    In generale poi è sempre meglio partire dalle cose semplici...
    ..::200 post il 1 settembre 2004::..
    ..::100 13/07/2004::..
    ..): Web Site (pazienza però) ..
    VASCO castiga chi non lecca la FIGA

  7. #7
    Grazie ragazzi/e tutto OK.......


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.