MacOS终端运行Java Jar前加载环境变量的更优方案咨询
终端运行Java Jar加载环境变量的实用方案
直接在命令行临时注入环境变量
不用额外文件,直接把环境变量前置在java命令前,只对当前命令生效,不会污染全局环境:ENV_VAR1=value1 ENV_VAR2=value2 java -jar path/to/app.jar适合临时测试或单次运行,变量少的时候用起来最方便。
用.env文件配合source加载
变量多的话,把所有环境变量写在.env文件里(每行格式:ENV_VAR=对应值),然后执行:source .env && java -jar path/to/app.jar要是不想让变量留在当前shell环境,也可以用这行:
$(cat .env | xargs) java -jar path/to/app.jar注意
.env里别写多余空格,避免解析出错。用direnv实现目录自动加载
先通过brew安装direnv:brew install direnv,然后在项目根目录建.envrc文件,写入变量:export ENV_VAR1=value1 export ENV_VAR2=value2执行
direnv allow授权后,每次进入这个目录,环境变量会自动加载,直接跑java -jar path/to/app.jar就行,退出目录变量自动失效,完全不影响全局环境。优化你的shell脚本方案
要是习惯用脚本,写个简单的run_app.sh:#!/bin/bash # 从.env加载变量,也可以直接在这里定义 source .env java -jar path/to/app.jar给脚本加执行权限:
chmod +x run_app.sh,之后直接./run_app.sh就能启动,适合需要重复运行、变量固定的场景。
内容的提问来源于stack exchange,提问作者Sankalp
相关产品推荐
相关产品推荐

