Você está usando ponto e vírgula como separador de caminho de classe - isso não funcionará no Linux. Tente substituir ";" com ":" no classpath e deve funcionar.
Editar: explicação do que está acontecendo aqui. No Linux, ";" é o separador de comandos. Sua linha de
java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar;/home/JohnF QueryDB
é realmente expandido em 2 executados um por um:
java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar
/home/JohnF QueryDB
O primeiro não faz nada e sai com sucesso. O segundo tenta invocar
/home/JohnF
como executável, e isso não é realmente um executável, mas um diretório!