由于组织的安全更新,我不能再使用brew进入组织的存储库来安装软件包。但是,我可以手动下载brew正在安装的.jar文件。
所以以前我做了:
brew tap <repo>
brew install <package>
<package> # Run the package from anywhere
我可以在任何地方运行该程序包,只需在终端中输入即可。十分简单。
通常Brew安装在usr/local/Cellar/<package>/some/internal/structure/<package.exe>
。但是在此过程中,它会使用别名,符号链接和$ PATH做一些事情(令我感到困惑),这样我就可以/usr/local/bin
通过<package>
在终端中的任意位置运行来自$ PATH中的给定包。
我正在尝试重新创建这种行为。我能够手动下载jar文件并将其放在文件夹中/usr/local/bin/<package>
。如果我跑步,java -jar /usr/local/bin/<package>/<package.exe>
那么一切都会很好。
我如何获得它以便可以<package>
在终端中的任何地方(如Brew)运行?另外,只是要100%清除,我想选择别名。我希望能够键入“ abc”来运行jar文件。
/usr/local/bin/
可能PATH
已经在您的变量中了。如果要检查,请使用将其打印到终端echo "$PATH"
。如果不是,则可以选择其中的其他目录之一或将其添加到其中。如果要将目录添加到PATH
变量中,则要将其添加到相关的点文件中(可能是~/.bashrc
):
export PATH="/usr/local/bin:$PATH"
PATH
是用冒号分隔的目录列表,您的系统将在其中查找可执行文件。
现在,您只需编写一个简短的脚本即可为您运行Java。例如,如果我们有一个名为foo.jar的jar文件,则可以制作一个简短的脚本来运行带有foo.jar完整路径的java,如下所示:
/usr/local/bin/foo
:
#!/bin/bash
java -jar '/path/to/foo.jar' "$@"
偷偷摸摸的编辑:确保您授予此文件可执行权限:
chmod +x /usr/local/bin/foo
现在,在终端上,如果我foo
没有完整的路径运行,它将运行此脚本。
该"$@"
只是要传给你一起进入java程序发送到该脚本的参数。
这不是实现此目的的唯一选择。您还提到了别名。您可以为您的.bashrc写一个别名,做同样的事情:
alias foo='java -jar "path/to/foo.jar"'
一个符号链接并不是真正的最佳选择。如果您的jar文件不在中,PATH
而您想在那里保存,那就可以了。但是,该PATH
变量实际上仅适用于可以直接执行的文件。如您所知,jar文件不能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句