web-dev-qa-db-fra.com

Comment exécuter une classe Java avec un pot dans le chemin de classe?

Donc je peux très bien faire ça:

Java mypackage.MyClass

si ./mypackage/MyClass.class existe. Je peux aussi le faire avec plaisir:

Java -cp myjar.jar mypackage.MyClass

si le fichier de classe existe dans la partie appropriée du bocal. Des trucs faciles. Mais je ne peux pas pour la vie de moi faire quelque chose comme ça:

Java -cp utilities.jar mypackage.MyClass

./mypackage/MyClass.class existe et où ./utilities.jar existe (ne contenant pas MyClass, bien sûr).

Suis-je sur le point de me sentir stupide?

25
amara

Peut-être :)

# On Unix
Java -cp utilities.jar:. mypackage.MyClass

# On Windows
Java -cp utilities.jar;. mypackage.MyClass

Fondamentalement, cela inclut simplement . (le répertoire courant) sur le chemin de classe ainsi que le fichier jar.

53
Jon Skeet

Essayez ceci si vous êtes sous Windows:

Java -cp .;utilities.jar mypackage.MyClass

Ou ceci si vous êtes sous Linux:

Java -cp .:utilities.jar mypackage.MyClass

Le répertoire actuel n'est pas dans le CLASSPATH par défaut lorsque vous spécifiez une valeur pour -cp.

7
duffymo