从Linux命令行运行需要附加文件的Java程序

从Linux命令行运行需要附加文件的Java程序,java,linux,postgresql,jdbc,Java,Linux,Postgresql,Jdbc,下面我将制作一个与数据库交互的程序。我在运行它的最后一步被卡住了。给出的例子是 C:\test>java-cpc:\test\postgresql-8.3-603.jdbc4.jar;c:\test jdbc示例 我的主目录中有JDBC的.class文件和.jar文件。我试过了 java-cp/home/JohnF/postgresql-9.2-1000.jdbc4.jar/home/JohnF/QueryDB.class和我得到的“无法执行二进制文件” 我试过了 java-cp/home/Jo

下面我将制作一个与数据库交互的程序。我在运行它的最后一步被卡住了。给出的例子是
C:\test>java-cpc:\test\postgresql-8.3-603.jdbc4.jar;c:\test jdbc示例

我的主目录中有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
。如何运行它?

您使用分号作为类路径分隔符-这在Linux上不起作用。 尝试将类路径中的“;”替换为“:”,它应该可以工作

编辑:解释此处发生的情况。 在Linux中,“;”是命令分隔符。你的产品线

java-cp/home/JohnF/postgresql-9.2-1000.jdbc4.jar/主页/JohnF QueryDB

实际扩展为2个,一个接一个地执行:

java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar
/home/JohnF QueryDB
第一个什么也不做,成功地退出了。
Second尝试将
/home/JohnF
作为可执行文件调用,而这实际上不是一个可执行文件,而是一个目录

您正在使用分号作为类路径分隔符-这在Linux上不起作用。 尝试将类路径中的“;”替换为“:”,它应该可以工作

编辑:解释此处发生的情况。 在Linux中,“;”是命令分隔符。你的产品线

java-cp/home/JohnF/postgresql-9.2-1000.jdbc4.jar/主页/JohnF QueryDB

实际扩展为2个,一个接一个地执行:

java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar
/home/JohnF QueryDB
第一个什么也不做,成功地退出了。
Second尝试将
/home/JohnF
作为可执行文件调用,而这实际上不是一个可执行文件,而是一个目录

修复:使用:而不是


为什么??*nix环境中的文件分隔符是“”而不是“

修复:使用:代替


为什么??*nix环境中的文件分隔符是“”而不是“

请注意,如果对整个字符串进行双引号引用,则不会将其拆分为两个命令,但仍然是错误的,因为根据Java的介绍性文档,类路径在类UNIX程序上必须以冒号分隔:请注意,如果对整个字符串进行双引号引用,则不会将其拆分为两个命令,但仍然是错误的,因为类路径在类UNIX程序中必须以冒号分隔,请参见Java介绍性文档: