我安装了拉霍塔- 用 Java 编写的时间跟踪程序 - 来自 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.language
和Duser.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