Visualizzazione dei risultati da 1 a 10 su 29

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    102
    Quote Originariamente inviata da valia Visualizza il messaggio
    non devi concatenare niente, -cp dai il classpath di riferimento e poi devi indicare la MainClass per l'esecuzione.
    se il classpath fosse corretto ti basta

    java MainClass

    -cp elencoClassPath serve a specificare il path differente e non va terminato con ; (non ricordo documentazione che mi indica una roba del genere. Il ; lo usi come separatore (hai cioè più di una voce), non come terminatore.


    un problema di fondo esiste, ma ancora non si è capito dove setti, quanto valgono le robe che setti e perché non va.
    Quello che fai con l'IDE lo fai anche senza, risolvere un problema di classpath con l'IDE è come sparare ad una mosca con il napalm.

    Adesso fai una cosa, prompt dei comandi e scrivi

    echo %CLASSPATH%

    e dimmi cosa viene fuori.
    Poi

    SET CLASSPATH=C:\prova;.;%CLASSPATH%

    dove in c:\prova mi aspetto di trovare il jar del driver e il jar con la tua classe

    poi fai

    echo %CLASSPATH%
    e dimmi cosa vedi.

    Infine fai

    java MainClass

    Assicurati anche che chi esegue abbia i permessi di accesso al jar (in lettura).
    Ragazzi mi sto sentendo seriamente cretino. Vi ho già detto innumerevoli volte che IL CLASSHPATH E' SETTATO CORRETTAMENTE poiché se faccio echo nel prompt mi spunta il percorso correto! Ecco ora vi metto tutte le prove possibili e immaginabili da prompt compreso il discorso del ; così magari mi capite e mi credete:

    codice:
    C:\prova>dir Volume in drive C has no label.
     Volume Serial Number is 2C78-A9A5
    
    
     Directory of C:\prova
    
    
    03/11/2014  17:00    <DIR>          .
    03/11/2014  17:00    <DIR>          ..
    04/11/2014  14:55             1.570 DBProva.class
    04/11/2014  15:27             1.167 DBProva.java
    10/09/2014  11:43           959.987 mysql.jar
                   3 File(s)        962.724 bytes
                   2 Dir(s)  73.975.779.328 bytes free
    
    
    C:\prova>java DBProva
    java.sql.SQLException: No suitable driver found for jdbc:mysql://127.0.0.1:3306/
    amat_records
            at java.sql.DriverManager.getConnection(Unknown Source)
            at java.sql.DriverManager.getConnection(Unknown Source)
            at DBProva.main(DBProva.java:12)
    
    
    C:\prova>echo %CLASSPATH%
    C:\prova;.
    
    
    C:\prova>java DBProva
    java.sql.SQLException: No suitable driver found for jdbc:mysql://127.0.0.1:3306/
    amat_records
            at java.sql.DriverManager.getConnection(Unknown Source)
            at java.sql.DriverManager.getConnection(Unknown Source)
            at DBProva.main(DBProva.java:12)
    
    
    C:\prova>SET CLASSPATH=C:\prova;.;%CLASSPATH%
    
    
    C:\prova>echo %CLASSPATH%
    C:\prova;.;C:\prova;.
    
    
    C:\prova>java DBProva
    java.sql.SQLException: No suitable driver found for jdbc:mysql://127.0.0.1:3306/
    amat_records
            at java.sql.DriverManager.getConnection(Unknown Source)
            at java.sql.DriverManager.getConnection(Unknown Source)
            at DBProva.main(DBProva.java:12)
    
    
    C:\prova>SET CLASSPATH=C:\prova;.
    
    
    C:\prova>java DBProva
    java.sql.SQLException: No suitable driver found for jdbc:mysql://127.0.0.1:3306/
    amat_records
            at java.sql.DriverManager.getConnection(Unknown Source)
            at java.sql.DriverManager.getConnection(Unknown Source)
            at DBProva.main(DBProva.java:12)
    
    
    C:\prova>java -cp mysql.jar DBProva
    Error: Could not find or load main class DBProva
    
    
    C:\prova>java -cp mysql.jar; DBProva
    Connessione riuscita, database: sakila
    Nomi film: 1
    
    
    C:\prova>java DBProva
    java.sql.SQLException: No suitable driver found for jdbc:mysql://127.0.0.1:3306/
    amat_records
            at java.sql.DriverManager.getConnection(Unknown Source)
            at java.sql.DriverManager.getConnection(Unknown Source)
            at DBProva.main(DBProva.java:12)
    
    
    C:\prova>

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da valerio65 Visualizza il messaggio
    IL CLASSHPATH E' SETTATO CORRETTAMENTE poiché se faccio echo nel prompt mi spunta il percorso correto!
    No, invece non l'hai settato correttamente! Perché hai solo messo la directory. In classpath il mysql.jar va messo! Sia alla variabile CLASSPATH, sia con il -cp.

    Quindi stando in C:\prova i casi sono:

    1) Con CLASSPATH:

    set CLASSPATH=C:\prova\mysql.jar;.
    java DBProva



    2) Con -cp

    java -cp C:\prova\mysql.jar;. DBProva


    Non può non funzionare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2012
    Messaggi
    102
    Quote Originariamente inviata da andbin Visualizza il messaggio
    No, invece non l'hai settato correttamente! Perché hai solo messo la directory. In classpath il mysql.jar va messo! Sia alla variabile CLASSPATH, sia con il -cp.

    Quindi stando in C:\prova i casi sono:

    1) Con CLASSPATH:

    set CLASSPATH=C:\prova\mysql.jar;.
    java DBProva



    2) Con -cp

    java -cp C:\prova\mysql.jar;. DBProva


    Non può non funzionare.
    Ho fatto come dici tu nel punto 1 ... finalmente funziona quindi basta mettere sul classpath percorso assoluto nome compreso di tutti i jar che mi servono... perfetto lo terrò a mente

    Grazie a tutti

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da valerio65 Visualizza il messaggio
    quindi basta mettere sul classpath percorso assoluto nome compreso di tutti i jar che mi servono... perfetto lo terrò a mente
    Path assoluto o relativo. Ovviamente se relativo, lo è rispetto alla directory "corrente" e può essere appropriato o meno ... dipende. La scelta spetta a te.

    Nel classpath:
    - le directory servono per trovare classi e risorse "sciolte" sul file-system (se ci sono nomi di package di mezzo, in classpath va messa la directory che contiene il package "radice").
    - i file .jar (tecnicamente anche .zip) vanno esplicitati, la JVM di per sé non "sa" di dover cercare i jar in modo arbitrario in una directory specificata. Da Java 5 (o 6? .. non ricordo) si può specificare un asterisco in una directory, es. set CLASSPATH=dir\*
    Nota: solo *, non *.jar. Con solo "*" la JVM va a cercare solo .jar/.JAR
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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 © 2026 vBulletin Solutions, Inc. All rights reserved.