从Linux命令行运行需要其他文件的Java程序

时间:2012-10-29 03:45:08

标签: java linux postgresql jdbc

我正在关注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。我如何让它运行?

2 个答案:

答案 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环境中的文件分隔符为“”,而不是“;