前言
在Mac系统下,为了使Java程序的jar包能够运行并指定外部目录下的配置文件(例如,假设配置文件名为application.properties,位于/path/to/external/config目录下),你可以创建一个shell脚本来实现这一需求。下面是一个简单的示例脚本:
脚本
#!/bin/bash
echo "This is a cms-app"
echo "This is a cms-app"
# 指定jar包的路径
JAR_PATH="/path/to/external/jar/one-cms-application.jar"
# 指定配置文件的路径
CONFIG_PATH2="/path/to/external/config/application.yml"
# 指定服务端口
PORT=9999
# 使用java命令运行jar包,并通过-D参数指定配置文件的位置
# 不建议使用-D参数配置
# -Dconfig.file=$CONFIG_PATH -Dserver.port=$PORT
java -jar $JAR_PATH --spring.config.location=file:$CONFIG_PATH2 --server.port=$PORT
运行
snackpub@snackpubdeMacBook-Pro jar % ./run.sh
注意
-D 是Java命令行的一个选项,用于在启动Java应用程序时设置系统属性值。这里的“系统属性”指的是Java虚拟机(JVM)及其运行的应用程序可以访问的一系列键值对设置。这些属性可以控制Java环境的行为或提供配置信息给应用程序使用。
java -Dmy.property=value -jar myApplication.jar
当你在命令行中使用 -D 参数时,可以通过 System.getProperty("my.property") 方法来访问这个值。
注意不要在springboot中这样直接使用,除非你自行通过 System.getProperty 拓展了相关属性注入到spring容器中。