Passando argumentos de linha de comando para java do script JPackage

1

Instalei o Rachota - um programa de controle de tempo escrito em Java - do repositório do Fedora, e o yum instalou o rachota.jar arquivo para /usr/share/java , mas também criou um script em /usr/bin/rachota . Esse script é usado para iniciar o Rachota, em vez de chamar java diretamente.

Estou tentando descobrir se há uma maneira de passar argumentos de linha de comando para o script /usr/bin/rachota e transmiti-los para java .

O script faz parte do projeto JPackage e é assim:

#!/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 "$@"

Obviamente, ele está analisando /etc/java/rachota.conf e $HOME/rachotarc , mas minha experiência com scripts de shell é bastante limitada, e não consigo descobrir o que colocar no arquivo $HOME/.rachotarc para passar os argumentos.

Este é o comando java que eu quero eventualmente executar:

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

O parâmetro jar é passado automaticamente, mas também quero passar os parâmetros Duser.language e Duser.country .

    
por Ian Dunn 23.05.2012 / 05:30

1 resposta

2

A parte importante é o arquivo /usr/share/java-utils/java-functions . Acabei de encontrá-lo online e parece suportar sinalizadores adicionais. Depois de examinar o arquivo (as funções run e set_flags são as mais importantes), parece que deve ser suficiente fornecer ADDITIONAL_FLAGS ao comando:

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

Se você quiser depurá-lo, talvez queira definir VERBOSE para imprimir mais detalhes sobre o argumento executado:

VERBOSE=1 /usr/bin/rachota

Se você quiser que essas configurações sejam persistentes, também pode definir as variáveis diretamente em $HOME/.rachotarc ou /etc/java/rachota.conf

    
por 23.05.2012 / 06:15