Używasz średnika jako separatora ścieżki klas - to nie zadziała w systemie Linux. Spróbuj zastąpić ";" z ":" w ścieżce klas i powinno działać.
Edytuj: wyjaśnienie, co się tutaj dzieje.W Linuksie „;” jest separatorem poleceń. Twoja linia
java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar;/home/JohnF QueryDB
jest naprawdę rozszerzona do 2 wykonywanych jeden po drugim:
java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar
/home/JohnF QueryDB
Pierwszy nic nie robi i pomyślnie kończy pracę. Drugi próbuje wywołać /home/JohnF
jako wykonywalny, a to naprawdę nie jest plik wykonywalny, ale katalog!