Anda menggunakan titik koma sebagai pemisah classpath - ini tidak akan berfungsi di Linux. Coba ganti ";" dengan ":" di classpath dan itu akan berfungsi.
Sunting: penjelasan tentang apa yang terjadi di sini. Di Linux, ";" adalah pemisah perintah. Baris Anda
java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar;/home/JohnF QueryDB
benar-benar diperluas menjadi 2 dieksekusi satu per satu:
java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar
/home/JohnF QueryDB
Yang pertama tidak melakukan apa-apa dan berhasil keluar. Kedua mencoba memanggil /home/JohnF
sebagai executable, dan ini sebenarnya bukan executable, tapi direktori!