non confondere i concetti:
PATH --> percorso in cui il sistema operativo va a cercare i tuoi eseguibili (es. java.sh o java.exe) e questo ti serve se vuoi compilare o eseguire.
Questo dice solo dove trovare gli eseguibili per gli strumenti che vuoi usare.
Dalla versione 1.4 in poi l'installazione del JDK comporta l'aggiornamento della variabile d'ambiente PATH, aggiungendo appunto le voci relative alla directory bin di java

CLASSPATH --> percorso in cui il classLoader cerca i tuoi .jar. ClassLoader è qualcosa che riguarda java, non il sistema (anche se puoi settare la variabile d'ambiente).
Non è obbligatorio settare una variabile d'ambiente con il classpath, devi ricordare tu che quando esegui un programma java, tutte le informazioni devono essere disponibili

a tal proposito guarda qui

path di ricerca:

a. percorso corrente (.)
b. CLASSPATH (se settata)
c. il valore di -cp o --classpath (che sovrascrive i primi due)
d. l'archivio jar specificato con l'opzione -jar, che sovrascrive i precedenti valori

Di solito io non uso settare la variabile d'ambiente CLASSPATH, ma creare uno script che lancia il comando java specificando il classpath desiderato.

Error: Could not find or load main class hw.jar
che classe è?