Stai usando il punto e virgola come separatore del percorso di classe - questo non funzionerà su Linux. Prova a sostituire ";" con ":" nel percorso di classe e dovrebbe funzionare.
Modifica: spiegazione di cosa sta succedendo qui.In Linux, ";" è un separatore di comandi. La tua linea di
java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar;/home/JohnF QueryDB
è davvero ampliato in 2 eseguiti uno per uno:
java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar
/home/JohnF QueryDB
Il primo non fa nulla e si chiude con successo. Il secondo tenta di invocare /home/JohnF
come eseguibile, e questo in realtà non è un eseguibile, ma una directory!