gpt4 book ai didi

带有标志的 Java 命令在 bash 中运行但不在 zsh 中运行

转载 作者:行者123 更新时间:2023-11-29 04:20:30 25 4
gpt4 key购买 nike

我遇到了一个问题,我可以在 bash 中使用代理设置运行 java,但不能在 zsh 中运行。

为了运行 jar,我首先使用环境变量设置我的代理设置:

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

关于带有标志的 Java 命令在 bash 中运行但不在 zsh 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49542849/

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