我想在java中执行一些旧代码,但随着旧版本的出现,它变得越来越复杂。因此,我希望创建我的“Java别名”,以便命令"java11“能够执行java 11二进制命令。不幸的是,在mac上,我没有成功。
我尝试遵循教程,希望在您的~/..zshrc中添加一个别名部分。我这样做了,它工作得很好,但是它不适用于bash脚本,这真的很烦人。
下面是我的java11别名在.zshrc中的行:
alias java11="/Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home/bin/java $@"(我不知道它是否会起什么作用,但我也在我的.bashrc中添加了别名行)
发布于 2021-06-20 19:33:02
别名对于这样的事情没有多大用处。它们需要在shell初始化文件中进行配置(以及使用哪个文件取决于shell,在何种模式下启动,等等),它们默认在脚本中被禁用,并且当命令由shell以外的东西执行时(例如,在sudo java11 ...中,执行该命令的是sudo,并且它不知道任何关于别名的信息),它们是不可用的。
我建议创建一个实际的命令。由于这只是现有二进制(/Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home/bin/java),的另一个名称,所以您只需使用指向原始二进制的符号链接(对于更复杂的内容,创建包装脚本可能是有意义的)。默认情况下,macOS中不存在/usr/local/bin,但它位于默认的PATH中(除了cron作业,grrr),因此如果您创建它,将自动搜索它。所以像这样的事情应该有效:
sudo mkdir -p /usr/local/bin
sudo ln -s /Library/Java/JavaVirtualMachines/jdk-11.0.11.jdk/Contents/Home/bin/java /usr/local/bin/java11在运行zsh会话时,可能需要运行rehash才能让它们注意到新的二进制文件。并删除别名,以防止其重写新命令。
https://stackoverflow.com/questions/68057091
复制相似问题