Bạn đang sử dụng dấu chấm phẩy làm dấu phân tách classpath - điều này sẽ không hoạt động trên Linux. Hãy thử thay thế ";" với ":" trong classpath và nó sẽ hoạt động.
Chỉnh sửa: giải thích về những gì đang xảy ra ở đây. Trong Linux, ";" là dấu phân cách lệnh. Dòng
của bạn
java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar;/home/JohnF QueryDB
thực sự được mở rộng thành 2 được thực thi từng cái một:
java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar
/home/JohnF QueryDB
Đầu tiên không làm gì cả và thoát thành công. Thứ hai cố gắng gọi /home/JohnF
dưới dạng tệp thực thi, và đây thực sự không phải là tệp thực thi, mà là một thư mục!