JPackage 스크립트에서 Java로 명령줄 매개변수 전달

JPackage 스크립트에서 Java로 명령줄 매개변수 전달

설치했습니다라 호타- Java로 작성된 시간 추적기 - Fedora 저장소에서 제공되며 yum은 파일을 설치 rachota.jar하지만 /usr/share/java거기에 스크립트도 생성합니다 /usr/bin/rachota. 이 스크립트는 java직접 호출되지 않고 Rachota를 시작하는 데 사용됩니다 .

명령줄 인수를 /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모르겠습니다 .$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

관련 정보