我正在关注this tutorial以创建一个与数据库交互的程序。我陷入了运行它的最后一步。给出的例子是
C:\test>java -cp c:\test\postgresql-8.3-603.jdbc4.jar;c:\test JDBCExample
我的主目录中有JDBC的.class文件和.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
。我如何让它运行?
答案 0 :(得分:4)
您使用分号作为类路径分隔符 - 这在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
作为可执行文件调用,这实际上不是可执行文件,而是目录!
答案 1 :(得分:1)
FIX:使用:代替;
为什么? * nix环境中的文件分隔符为“:”,而不是“; ”