linux java cp,从Linux命令行运行Java程序需要一个附加文件

I am following this tutorial to make a program that interacts with the database. I am stuck at the last step where I run it. The given example is

C:\test>java -cp c:\test\postgresql-8.3-603.jdbc4.jar;c:\test JDBCExample

I have both the .class file and the .jar for the JDBC in my home directory. I tried

java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar;/home/JohnF/QueryDB.class and I get "cannot exectue binary file"

I tried

java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar;/home/JohnF/QueryDB and I get "no such file or directory"

I tried

java -cp /home/JohnF/postgresql-9.2-1000.jdbc4.jar;/home/JohnF QueryDB and I get "JohnF is a directory"

I used chmod to set the file permissions to 777. How do I get this to run?

解决方案

You are using semicolon as classpath separator - this will not work on Linux.

Try replacing ";" with ":" in classpath and it should work.

Edit: explanation of what is happening here.

In Linux, ";" is command separator. Your line of

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

is really expanded into 2 executed one by one:

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

/home/JohnF QueryDB

First one does nothing and successfully quits.

Second tries to invoke /home/JohnF as executable, and this is really not an executable, but a directory!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值