从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介绍性文档: