在shell中执行java -jar命令时带了很多参数,中间有换行,用的是 \ 来换行,然后在另外一个java程序中调用该shell脚本,但是在运行的时候报java: command not found错误,好奇怪,求解答
\不是换行,而是续行,就是说一行写不下了,下一行继续,而不是一个命令的结束
你说报java: command not found,跟\没有关系,错误的原因:
你没有装java
path没有设对,echo $PATH看一下java的执行文件在不在其中的一个目录,没有,加之
对的对的,是这个意思,表述错误,但是我的服务器上java肯定是装了的,path也是对的,之前是把项目部署在服务器上可以,在本地远程连linux去执行shell脚本会报这个错,但是昨天2种方式都报这个错了
追答你如果确定环境变量没有问题,那就无解了
echo $JAVA_HOME
echo $PATH
到底返回什么?
但是我单独直接去执行这个shell可以成功运行啊sh start.sh这样是可以的
你怎么执行这个script的?
还有,你的PATH, 有jdk1.6.0_21, 也有jdk1.6.0_23,已经混乱了
我用java调用shell执行的啊,Runtime.getRuntime().exec("sh start.sh");我只装了1.6.0_21,而且我的/home/sandibs/下根本就没有Java这个路径,也不知道哪来的
追答java调用,那你就应该在script里面看环境变量啊,把这两行加在script中调用java之前,
echo $JAVA_HOME
echo $PATH
就当调试,看看输出是什么?
如果是的话,改过来,将这一条命令完整的写在一行里,中间不要按回车,一直写,一直写,你看它到头了自己会到下一行(其实还是在同一行,只是因为桌面显示不下了而显示在下一行)。追问
试过了,也不行,就是感觉特别奇怪
必须配置了啊