将命令行参数从 JPackage 脚本传递给 java

将命令行参数从 JPackage 脚本传递给 java

我安装了拉霍塔- 用 Ja​​va 编写的时间跟踪程序 - 来自 Fedora 存储库,并且 yum 将文件安装rachota.jar/usr/share/java,但它还在 处创建了一个脚本/usr/bin/rachota。该脚本用于启动 Rachota,而不是java直接调用。

我试图弄清楚是否有一种方法可以将命令行参数传递给/usr/bin/rachota脚本并将它们传递给java.

该脚本是J包项目看起来像这样:

#!/bin/sh
#
# rachota script
# JPackage Project <http://www.jpackage.org/>

# Source functions library
_prefer_jre="true"
. /usr/share/java-utils/java-functions

# Source system prefs
if [ -f /etc/java/rachota.conf ] ; then
  . /etc/java/rachota.conf
fi

# Source user prefs
if [ -f $HOME/.rachotarc ] ; then
  . $HOME/.rachotarc
fi

# Configuration
MAIN_CLASS=org.cesilko.rachota.gui.MainWindow
BASE_FLAGS=""
BASE_OPTIONS=""
BASE_JARS="rachota"

# Set parameters
set_jvm
set_classpath $BASE_JARS
set_flags $BASE_FLAGS
set_options $BASE_OPTIONS

# Let's start
run "$@"

显然它正在解析/etc/java/rachota.conf$HOME/rachotarc,但是我的 shell 脚本经验非常有限,我不知道在$HOME/.rachotarc文件中放入什么来传递参数。

这是我想要最终运行的 java 命令:

java -Duser.language=en -Duser.country=GB -jar /usr/share/java/rachota.jar

参数jar是自动传递的,但我也想传递Duser.languageDuser.country参数。

答案1

重要的部分是/usr/share/java-utils/java-functions文件。我刚刚找到了在线的它似乎支持额外的标志。查看文件后(run 和 set_flags 函数是重要的函数),似乎应该足以提供ADDITIONAL_FLAGS给命令:

ADDITIONAL_FLAGS="-Duser.language=en -Duser.country=GB" /usr/bin/rachota

如果您想调试它,您可能需要设置VERBOSE打印有关执行参数的更多详细信息:

VERBOSE=1 /usr/bin/rachota

如果您想让这些设置持久存在,您还可以直接在$HOME/.rachotarc或中设置变量/etc/java/rachota.conf

相关内容