Je viens de compiler un programme Java dans la console. Maintenant, je veux l'exécuter. J'ai besoin de driver jdbc pour postgresql et mysql. Par conséquent, j'ai besoin d'inclure les pots correspondants.java setting classpath
Je l'ai fait l'follwing
java -Xmx512m -cp ".;/path/to/sql/jars" main.Main rc
Lors de cette opération j'obtiens l'erreur follwoing:
Exception in thread "main" java.lang.NoClassDefFoundError: main/Main
Caused by: java.lang.ClassNotFoundException: main.Main
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: main.Main. Program will exit.
Lorsque ignorant l'option classpath comme celui-ci
java -Xmx512m main.Main rc
Je reçois l'erreur follwing
java.lang.ClassNotFoundException: org.postgresql.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at database.PostgresQL.getConnection(Unknown Source)
at database.PostgresQL.loadIndexFromDatabase(Unknown Source)
at main.Main.readDataFromDatabase(Unknown Source)
at main.Main.main(Unknown Source)
Ainsi, le programme peut être exécuté correctement. Ma question: Comment dire au programme de chercher les bocaux correctement dans la console?
Cela ne doit pas être recommandé, 'lib/ext' est pour les extensions qui doivent être disponibles pour tous les processus Java sur un JRE donné, pas pour les bibliothèques qui sont nécessaires par un programme spécifique. Vous pouvez entrer dans un désordre de classloader horrible en mettant des JARs dans 'ext' qui n'ont pas été conçus pour fonctionner là, et il est impossible d'avoir deux programmes Java différents utilisant des versions différentes de la même bibliothèque. –