从Linux命令行运行Java程序,它需要一个额外的文件(Running Java program

2019-10-17 08:53发布

我下面这个教程 ,使与数据库交互的程序。 我被困在那里我运行它的最后一步。 给定的例子是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 ,我得到“无法exectue二进制文件”
我试过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 。 我如何获得它运行?

Answer 1:

您正在使用分号分隔类路径 - 这将无法在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为可执行的,这是真的不是一个可执行文件,而是一个目录!



Answer 2:

FIX:用途:代替;

为什么? 该文件分离器* nix的环境是“:”而不是';



文章来源: Running Java program from Linux command line that requires an additional file