【发布时间】:2017-04-23 02:09:13
【问题描述】:
我搜索了多个问题/回复,但没有找到适合我的。
我在 Windows 上,我正在尝试通过 Git Bash 运行应用程序:
$ ./bin/program.sh config/program.properties
我得到的错误是:
C:/bin/program.sh: line 127: C:\Program: No such file or directory
我已将问题缩小到 .sh 中的较早部分
if [ -z "$JAVA_HOME" ]; then
JAVA="java"
else
JAVA="$JAVA_HOME/bin/java"
fi
好吧,第 127 行有:
exec $JAVA ...
还有更多内容,但问题出在 JAVA_HOME 部分。我的 JAVA_HOME 是
C:\Program Files\Java\jre1.8.0_111\bin\java
我尝试了多种不同的方法来替换 JAVA 以击败空白
"C:\\Program Files\\Java\\jre1.8.0_111\\bin\\java"
"C:\\Program/ Files\\Java\\jre1.8.0_111\\bin\\java"
"C:/Program\ Files/Java/jre1.8.0_111/bin/java"
C:/"Program Files"/Java/jre1.8.0_111/bin/java
'C:/Program Files/Java/jre1.8.0_111/bin/java'
可能还有更多组合,但我忘记了。这是 Git Bash 的问题吗?或者这是我不知道的关于 .sh 文件的事情?或者当存储在 $JAVA 中时,空格分隔符是否不起作用?或者这是一个完全不同的问题?
更新
将$JAVA 括在引号中:"$JAVA" 修复它。
【问题讨论】:
-
用单引号括起来。例如
'C:/Program Files/Java/jre1.8.0_111/bin/java' -
@0.sh 我也试过了,我仍然得到
C:/bin/program.sh: line 127: C:\Program: No such file or directory将更新帖子以反映它。 -
这个
[ -z "$JAVA_HOME"]会产生错误。 -
你试过 exec "$JAVA" ... 吗?
-
@m1771vw "$JAVA_HOME" 和第二个关闭
]之间应该有一个空格。