java.lang.ClassNotFoundException nonostante l’uso della variabile d’ambiente CLASSPATH

Sto cercando di connettermi al database mysql usando java su windows7. Nonostante l’url completo del file jar jdbcdriver in CLASSPATH, viene lanciata java.lang.ClassNotFoundException: com.mysql.jdbc.Driver. Qualcuno potrebbe dirmi cosa mi manca qui? Funziona se aggiungo il file jar nella libreria del progetto ma voglio farlo da CLASSPATH stesso. Il mio classpath assomiglia a questo: C: \ jython2.5.1 \ javalib \ mysql-connector-java-5.1.12-bin.jar

Voglio chiarire che questo non è il vero progetto a cui sto lavorando. In realtà sto usando Django con Jython, che richiede al driver JDBC di accedere al database. Questo è il motivo per cui devo farlo solo con CLASSPATH.

La CLASSPATH ambiente CLASSPATH viene utilizzata solo dal comando java.exe e anche in questo caso solo se utilizzata senza gli argomenti -cp , -classpath , -jar . Viene ignorato dagli IDE come Eclipse, Netbeans e IDEA.

Quella variabile ambientale è nel mondo reale considerata anche una ctriggers pratica dal momento che rompe la portabilità. Cioè, il programma X verrà eseguito correttamente mentre il programma Y non verrà eseguito senza alterare il CLASSPATH . È solo “utile” per Sun Oracle impedire che gli utenti si stancano di digitare lo stesso percorso di class più e più volte negli argomenti -cp o -classpath quando seguono le esercitazioni Java. Nel mondo reale, i file batch / shell sono preferiti in cui viene specificato solo l’intero comando con l’argomento -cp / -classpath .

Nel tuo caso stai usando un IDE. Il classpath è chiamato “Build Path”. In semplici progetti Java, rappresenta sia il classpath compiletime che il runtime. Puoi configurarlo nelle proprietà del progetto. È ansible aggiungere una cartella completa, è ansible aggiungere file JAR singoli / esterni, è ansible colbind progetti, ecc. Usalo. Dimentica di utilizzare la CLASSPATH ambiente CLASSPATH . È stato un errore di Sun Oracle. Hanno pensato di convincere i principianti, ma ha finito per essere solo più confusionario per i principianti in quanto interpretavano erroneamente la variabile di ambiente come classpath.

Guarda anche:

  • Come aggiungere librerie JAR al progetto WAR senza affrontare java.lang.ClassNotFoundException? Classpath vs Build Path vs / WEB-INF / lib

Quello che alla fine mi ha aiutato è stato copiare il mysql-connector-java-5.1.15-bin.jar in \ jre \ lib e in \ jre \ lib \ ext entrambi (!) Anche se ho fatto tutte le offerte Java del circo classpathing: L’ambiente era puramente blocco note / riga di comando.

Ciò che ha funzionato con me usando Netbeans è stato: Esegui> Imposta configurazione progetto> Personalizza. Sotto Librerie> Aggiungi libreria. Aggiunto il driver JDBC di MySQL (presumo sia apparso in lista perché ho copiato il file jar nella cartella jre \ lib \ ext. E ha funzionato perfettamente.

Ho provato a impostare classpath ma non ha funzionato. Sto usando Netbeans 7.0

semplicemente fai un clic destro sul tuo progetto in “Netbeans” seleziona le proprietà quindi fai clic su “librerie” quindi fai clic sul pulsante “aggiungi libreria …” quindi seleziona “MySQL JDBC Driver” e fai clic sul pulsante “aggiungi libreria” quindi su “OK “pulsante

Ho anche avuto questo problema in precedenza, ma dopo aver inserito / aggiunto mysql-connector-java-5.1.34-bin.jar (scaricalo da qui ) nella cartella apache-tomcat-8.0.15 \ lib , quindi ho eseguito il mio progetto , ha funzionato davvero.

Nota: anche dopo aver aggiunto il file jar, l’errore persiste, quindi riavviare il server Tomcat e rieseguire di nuovo il progetto.

  1. Apri Netbeans IDE
  2. Fai clic con il pulsante destro del mouse sul tuo progetto.
  3. Seleziona Proprietà.
  4. Sul lato sinistro, fai clic su Librerie.
  5. Nella scheda “Compila”, fai clic sul pulsante Aggiungi Jar / Cartella.
  6. Selezionare il file “mysql-connector-java-5.1.25-bin.jar” scaricato ( Download Connector / J da dev.mysql.com)
  7. Clicca OK
  8. Corri di nuovo … Il suo lavoro.

Se stai usando Maven, aggiungi la dipendenza a pom.xml per risolvere il problema.

  mysql mysql-connector-java 5.1.36  

Nell’IDE di Netbeans basta controllare le proprietà del progetto su cui si sta lavorando, nella finestra delle proprietà andare sul tag ‘library’, nella casella diolog basta aggiungere il proprio mysql-connector-java- * * .jar file.

Ho avuto lo stesso problema in Netbeans. Poiché stavo usando un pool di connessioni tomcat come definito in context.xml, avevo bisogno di aggiungere il jdbc jar sia al progetto (Properties-> Libraries) che alla cartella lib / all’interno del mio server Tomcat in modo che potesse essere visto all’avvio.