我遇到一个问题,我可以使用bash
中的代理设置运行Java,但不能在zsh中运行。
为了运行jar,我首先使用env变量设置代理设置:
export JAVA_OPTS="-Dhttp.proxyHost=my.proxy.org -Dhttp.proxyPort=80 -Dhttps.proxyHost=my.proxy.org -Dhttps.proxyPort=80 -DsocksProxyHost=my.proxy.org -DsocksProxyPort=80"
然后我用以下命令运行jar
java $JAVA_OPTS -jar path/to/file.jar
它在
bash
中成功运行,但是在zsh
中运行时,它无法识别代理设置,并且在尝试建立网络连接时失败。有人知道我该如何解决才能使用
zsh
吗? 最佳答案
zsh的单词拆分与bash有所不同。我认为您需要明确表示要拆分它。考虑一下,它就像一个bash引用变量
$ export JAVA_OPTS="-Dhttp.proxyHost=my.proxy.org -Dhttp.proxyPort=80 -Dhttps.proxyHost=my.proxy.org -Dhttps.proxyPort=80 -DsocksProxyHost=my.proxy.org -DsocksProxyPort=80"
$ printf ">%s<\n" $JAVA_OPTS
>-Dhttp.proxyHost=my.proxy.org -Dhttp.proxyPort=80 -Dhttps.proxyHost=my.proxy.org -Dhttps.proxyPort=80 -DsocksProxyHost=my.proxy.org -DsocksProxyPort=80<
与这个
$ printf ">%s<\n" ${=JAVA_OPTS}
>-Dhttp.proxyHost=my.proxy.org<
>-Dhttp.proxyPort=80<
>-Dhttps.proxyHost=my.proxy.org<
>-Dhttps.proxyPort=80<
>-DsocksProxyHost=my.proxy.org<
>-DsocksProxyPort=80<
参见:
man zshexpn