samza.Apache.org/startup/hello-samza/0.7.0/ をWindowsのBashで使用してみてください
走ります
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にインポートしたい
export Java_HOME="/mnt/c/Program Files (x86)/Java/jdk1.8.0_102"
を試して、bashシェルでJava_HOME変数を設定します。
更新(編集への応答):
Windows上のUbuntuでBashにWindowsパスを自動的にインポートすることはお勧めしません。パスを変換してbashシェル(\
から/
、C:\
からmnt/c/
など)に認識させる必要があるためです。おそらく参照するツールの一部は、WindowsとLinuxの両方で動作します。代わりに、 apt-get
を使用して必要なものをBashシェルにインストールします(BUWはルートシェルにロードされるため、Sudo
を使用する必要はありません)。 Javaはおそらく上記のように参照しても問題ありませんが、Ubuntuに個別にインストールしたいものはほとんどあります。
簡単な解決策として、次のようなPowerShellスクリプトを作成しました
/
に変更しますC:
を/mnt/c
に変更します出力export
コマンドは環境変数ごとに1行
Get-ChildItem Env: | % {"export $($_.Name)=`"$($_.Value.Replace('\', '/').Replace('C:', '/mnt/c'))`""}
これで、Powershellでこのスクリプトを実行し、出力をコピーしてWindowsのWSL/Ubuntuに貼り付けて、環境変数を設定するだけです。これらのコマンドをすべて.sh
ファイルに入れて、bashを使用して実行することもできます。
それは粗雑な解決策ですが、これは私にとってはうまくいきました。これを改善するための提案を受け付けています。
私のパス環境変数には既にWindowsパスがあります。ただし、Windows上のUbuntuからWindowsプログラムを実行できます。そのため、環境変数など、好きなものを取得できます。
export PATH=$PATH:`/mnt/c/Windows/System32/cmd.exe -/C "echo $PATH"`
Cygwin(ライセンス、レジストリ破損など)の使用は推奨されません。しかし、以下が動作するはずです。 runは、提供されるbashシェルからWindowsプログラムを実行するように文書化されています。
export PATH=$PATH:`run /mnt/c/Windows/System32/cmd.exe -/C "echo $PATH"`