尝试在Windows上使用Bash <{p>}使用samza.apache.org/startup/hello-samza/0.7.0/
它会运行
bin/grid bootstrap
流动的代码
if [ -z "$JAVA_HOME" ]; then
if [ -x /usr/libexec/java_home ]; then
export JAVA_HOME="$(/usr/libexec/java_home)"
else
echo "JAVA_HOME not set. Exiting."
exit 1
fi
fi
给出错误
JAVA_HOME not set. Exiting.
我运行时在CMD上
echo %JAVA_HOME%
我得到了
C:\Program Files (x86)\Java\jdk1.8.0_102\
我想将路径数据导入bash
答案 0 :(得分:5)
我会尝试export JAVA_HOME="/mnt/c/Program Files (x86)/Java/jdk1.8.0_102"
在bash shell中设置JAVA_HOME变量。
更新(回复您的修改):
我不建议尝试在Windows上的Ubuntu上自动将Windows路径导入Bash,因为必须将路径转换为bash shell(\
到/
,{ {1}}到C:\
等等,因为并非所有可能引用的工具都适用于Windows和Linux。相反,使用apt-get
在Bash shell上安装所需的内容(您不需要使用mnt/c/
,因为BUW会在根shell中加载)。如上所述,Java可能很好引用,但大多数事情都需要在Ubuntu上单独安装。
答案 1 :(得分:1)
作为快速解决方案,我创建了一个Powershell脚本,该脚本将
/
C:
更改为/mnt/c
输出export
命令每个环境变量一行
Get-ChildItem Env: | % {"export $($_.Name)=`"$($_.Value.Replace('\', '/').Replace('C:', '/mnt/c'))`""}
现在,您需要做的就是在Powershell中运行此脚本,复制输出并将其粘贴到Windows的WSL / Ubuntu中以填充环境变量。您还可以将所有这些命令放在.sh
文件中,然后使用bash执行。
这是一个粗略的解决方案,但这对我有用。我愿意提出改进建议。
答案 2 :(得分:1)
这个对我有用,通过在系统变量环境中设置 WSLENV。
系统变量
答案 3 :(得分:0)
我的路径环境变量似乎已经有我的Windows路径。但是您可以在Windows上从Ubuntu运行Windows程序。这样您就可以获取环境变量或任何您喜欢的变量。
export PATH=$PATH:`/mnt/c/Windows/System32/cmd.exe -/C "echo $PATH"`
不建议使用Cygwin(许可,注册表损坏等)。但是下面应该工作。记录运行可以从它为您提供的bash shell运行Windows程序。
export PATH=$PATH:`run /mnt/c/Windows/System32/cmd.exe -/C "echo $PATH"`