Salut tout le monde,
J’aimerais faire le point sur le classpath utilisé par la JVM. En effet, j’ai l’impression qu’à la compilation (javac fichier_source.java -d ../repertoire_des_classes
), un premier niveau de classpath est utilisé et à l’exécution (java -jar executable_java.jar
), un second niveau est utilisé.
Par "niveau", j’entends… comment dire… environnement de lecture du classpath ?
Je m’explique. Dans mon $CLASSPATH
j’ai mis un chemin absolu ($HOME/[...]
) vers une librairie .jar
et ça m’a permis de bien compiler mon projet !
Par contre à l’exécution, la librairie n’est pas trouvée : je pense que c’est parce que cette exécution utilise le chemin absolu ($HOME/[...]
) alors que l’environnement d’exécution est le .jar
, qui ne contient pas ma $HOME/
au moins. Donc forcément il ne trouve pas la lib.
Je ne sais pas si j’ai été très clair, mais j’espère que vous avez compris l’idée. Du coup j’ai raison ou pas ? Et si oui : comment résoudre ce problème sans modifier mon $CLASSPATH
?
Bonne continuation !