首页 > 解决方案 > 启动 Java 应用程序时如何在 .sh 文件中重新定义属性值

问题描述

我有一个脚本文件 app.sh: java -DenabledFeature=true -jar filename [args]

当我启动脚本时: ./app.sh -DenabledFeature=false

代码在哪里 Boolean isFeatureEnabled = System.getProperty("enabledFeature", "true").equals("true")

该值始终为真;

如何将属性的值更改为 false?

标签: javabash

解决方案


如果您总是通过 运行应用程序./app.sh -DenabledFeature=false,则可以通过以下方式直接将命令行参数作为 java 参数传递:

java $1 -jar filename [args]

这里$1将捕获第sh一个参数。

更新,因为您可以将多个值作为参数传递,您可以检查是否为启用功能传递了错误值,例如:


应用程序.sh

#!/bin/bash

enabledFeature=true
if [[ "$*" =~ '-DenabledFeature=false']] ;
then
      enabledFeature=false
      #echo $enabledFeature
fi

java -DenabledFeature=$enabledFeature -jar filename [args]


推荐阅读