我正在按照这个教程来制作一个与数据库交互的程序。 我被困在我运行它的最后一步。 给出的例子是C:\test>java -cp c:\test\postgresql-8.3-603.jdbc4.jar;c:\test JDBCExample
我的.class文件和我的主目录中的JDBC的.jar。 我试过了
java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar;/home/JohnF/QueryDB.class
我得到“不能执行二进制文件”
我试过java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar;/home/JohnF/QueryDB
,我得到“没有这样的文件或目录”
我试过java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar;/home/JohnF QueryDB
,我得到“JohnF是一个目录”
我使用chmod
将文件权限设置为777
。 我如何得到这个运行?
您使用分号作为类路径分隔符 – 这在Linux上不起作用。 尝试替换“;” 与“:”在类路径中,它应该工作。
编辑:在这里发生的事情的解释。 在Linux中,“;” 是命令分隔符。 你的线
java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar;/home/JohnF QueryDB
真的被扩展为2个逐一执行:
java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar /home/JohnF QueryDB
第一个什么都不做,成功退出。 其次尝试调用/home/JohnF
作为可执行文件,这实际上不是一个可执行文件,而是一个目录!
FIX:使用:而不是;
为什么? * nix环境中的文件分隔符是' : ',而不是' ; “