gpt4 book ai didi

java - 导出: `C:/Java/jdk1.7.0_65':不是有效的标识符

转载 作者:行者123 更新时间:2023-12-02 21:46:24 25 4
gpt4 key购买 nike

我正在尝试在系统上安装hadoop,但是当我在Windows的" bin/hadoop namenode -format"中使用cygwin命令时,出现错误:

" /home/EMPAdmin/hadoop-0.19.1/bin/../conf/hadoop-env.sh: line 9: export: `c:\Java\jdk1.7.0_65': not a valid identifier
Error: JAVA_HOME is not set."

我在系统中设置了环境变量,并且在hadoop-env.sh文件中还将JAVA_HOME设置为: export JAVA_HOME="c:\Java\jdk1.7.0_65"我也用正斜杠尝试了相同的文件路径,但是没有运气。

请有人帮我解决这个问题。

谢谢!!

最佳答案

有两种可能性。首先是您可能会遇到以下情况:

export $JAVA_HOME

在脚本中某处,因为该值被视为环境变量。

$放在 JAVA_HOME之前使用当前值作为变量名,而不是导出变量名,如下面的脚本所示:
pax> export VAR="c:\java"                 # set it correctly

pax> echo $VAR # check it
c:\java

pax> export VAR # export correctly

pax> export $VAR # export incorrectly
bash: export: `c:\java': not a valid identifier

换句话说,最后一行等效于:
pax> export c:\java

需要值时,仅在变量名前使用 $,如下所示:
echo $VAR
PATH=$VAR:$PATH

导出或更改变量不应放在最前面,而应使用变量名称:
export VAR
OBJ=$(echo $SRC | sed 's/cpp$/obj/')

最后一个很特别。您正在使用 SRC,因此您需要 $,但是您正在设置 OBJ,因此它不需要 $

如果您没有将 $放置在不应该放置的位置,那么第二种可能性是,您的 export命令中有不应放置的位置,例如:
export JAVA_HOME= C:\Java\jdk1.7.0_65
# ^
# +- note this space

要做的是将 JAVA_HOME设置为空字符串(并尝试将其导出),然后尝试导出(无效)变量 C:\Java\jdk1.7.0_65。换句话说,您可以执行以下操作:
export xyzzy=plugh twisty=passage # set/export both xyzzy and twisty

我认为这实际上是您根据错误消息和对此答案的评论之一(在export命令中包含空格)所做的事情。当我在 =后面输入一个带有空格的命令时,我看到:
pax> export JAVA_HOME= c:\Java\jdk1.7.0_65
bash: export: `c:Javajdk1.7.0_65': not a valid identifier

正是您所拥有的。

正确的方法是没有空格:
export JAVA_HOME=C:\Java\jdk1.7.0_65
# \___/
# |
# +- no spaces on either side of the '='

关于java - 导出: `C:/Java/jdk1.7.0_65':不是有效的标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24955655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com