1

我正在按照本教程制作一个与数据库交互的程序。我被困在运行它的最后一步。给定的例子是 C:\test>java -cp c:\test\postgresql-8.3-603.jdbc4.jar;c:\test JDBCExample

我的主目录中有 .class 文件和 .jar 用于 JDBC。我试过

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. 我如何让它运行?

4

2 回答 2

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作为可执行文件调用,这实际上不是一个可执行文件,而是一个目录!

于 2012-10-29T03:52:33.640 回答
1

修复:使用 : 而不是;

为什么?*nix 环境中的文件分隔符是 ' : ' 而不是 ' ; '

于 2012-10-29T04:17:29.933 回答