J'ai un répertoire /home/igarimasho/java_test/ qui contient un fichier Application.java:
Code :
- import java.sql.*;
- class Application {
- public static void main(String[] args) {
- System.out.println("Hello World!" );
- Class.forName("org.postgresql.Driver" );
- }
- }
|
ainsi que le fichier postgresql.jar
Je tente une compilation avec la commande suivante:
Code :
- $ javac -classpath /home/igarimasho/java_test/postgresql.jar Application.java
|
Et forçément le compilateur me crache à la figure:
Citation :
Application.java:6: unreported exception java.lang.ClassNotFoundException; must be caught or declared to be thrown
Class.forName("org.postgresql.Driver" );
^
1 error
|
Où est le problème?
EDIT: j'ai googlé, et d'autres personnes ont le même problème, mais j'ai pas la solution où du moins l'explication de la source du problème
EDIT: issue de la doc du driver postgresl: http://jdbc.postgresql.org/documentation/84/load.html
Citation :
The forName() method can throw a ClassNotFoundException if the driver is not available.
|
Cool, mais mon classpath a l'air bon!
EDIT: bourdel, en ajoutant à mon code:
Code :
- System.out.println(System.getProperty("java.class.path" ));
|
Je vois que l'option du classpath ne passe pas correctment au compilateur. Pourquoi???
En fait l'output complet de l'appli est: (je suis sous Osx)
Code :
- Hello World!
- .:/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Classes/.compatibility/14compatibility.jar
|
Et mon postgresql.jar il est passé où?
Message édité par igarimasho le 21-09-2009 à 01:11:31