Jako oddělovač cesty třídy používáte středník - v Linuxu to nebude fungovat. Zkuste nahradit ";" s ":" v classpath a mělo by to fungovat.
Upravit: vysvětlení toho, co se zde děje. V Linuxu ";" je oddělovač příkazů. Vaše řada
java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar;/home/JohnF QueryDB
je skutečně rozšířen na 2 provedené jeden po druhém:
java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar
/home/JohnF QueryDB
První nedělá nic a úspěšně skončí. Druhý se pokusí vyvolat /home/JohnF
jako spustitelný soubor, a to opravdu není spustitelný soubor, ale adresář!