Non bisogna per forza settare la variabile di ambiente per aggiungere jar esterni ( di solito si usa questo nome per riferirsi a librerie esterne da usare e non package) anche se di solito lo si fa per comodità di compilazione ed esecuzione durante lo sviluppo; comunque l'altro modo per gestire il classpath e attraverso le opzioni -classpath <path dei jar separati dal ;> per quanto riguarda la compilazione "javac" e l'analoga opzione -cp per il comando di esecuzione "java".
Ti faccio un esempio per chiarire ulteriormente:
supponiamo di avere questa situazione
/usr/java/desktop/mioprogetto -> folder principale di un progetto java! quindi conterrà i file .java
/usr/java/desktop/mioprogetto/libs -> folder delle librerie esterne che conterrà per esempio libA.jar e libB.jar
se posiziono la shell in /usr/java/desktop/mioprogetto
compilazione -> javac -classpath libs/libA.jar;libB.jar;.; *.java
esecuzione -> java -cp libs/libA.jar;libB.jar;.; MiaClasseMain