में एकाधिक जार का उपयोग करके मैं jsvc का उपयोग कर एक लिनक्स सेवा के रूप में चलाने के लिए जावा एप्लिकेशन प्राप्त करने का प्रयास कर रहा हूं। मुझे How to convert a java program to daemon with jsvc? मिला जो मुझे सबसे अधिक रास्ता प्राप्त करने में सक्षम था, लेकिन मैं अभी भी वर्गपाथ को समझने के लिए संघर्ष कर रहा हूं।jsvc classpath
मैं stderr करने के लिए निम्न त्रुटियों हो रही है:
19/04/2013 10:43:18 12233 jsvc.exec error: Cannot find daemon loader org/apache/commons/daemon/support/DaemonLoader
19/04/2013 10:43:18 12231 jsvc.exec error: Service exit with a return value of 1
यह प्रतीत होता है कि क्रम कॉमन्स-daemon.jar खोजने में असमर्थ है।
मेरा आवेदन संरचित है ताकि एप्लिकेशन को एक ही जार फ़ाइल में निर्भरता के साथ, lib lib निर्देशिका में commons-daemon समेत।
- daemon-script.sh
- myapp.jar
- lib/कॉमन्स-daemon.jar
- lib/अन्य-जार
यहाँ मेरी daemon- के प्रासंगिक भागों है script.sh:
LIB_DIR=$(pwd)/lib/*
CLASS_PATH=$(pwd)/myapp.jar
$EXEC -home $JAVA_EXEC -cp $CLASS_PATH:$LIB_DIR -outfile $LOG_OUT -errfile $LOG_ERR -pidfile $PID $1 $CLASS
मैंने कई भिन्नताओं की कोशिश की है: सापेक्ष पथ, speci लिबिक रूप से संदर्भित lib/commons-daemon.jar, कोई वाइल्डकार्ड, आदि। क्या किसी को यह विचार है कि यह काम ठीक से कैसे करें?
इसके अलावा, myapp.jar एक स्वयं निष्पादन योग्य जार है (ज्यादातर परीक्षण प्रयोजनों के लिए, और हाँ, मैं अभी भी एक सेवा के रूप में चलाने के लिए इसकी आवश्यकता है), तो MANIFEST.MF कक्षा-पथ और main- शामिल कक्षा विशेषताओं। क्या प्रकट करने के लिए jsvc प्राप्त करने का कोई तरीका है?
मेरी माइलेज विविधता jsvc 1.0.8 (उबंटू पर) का उपयोग करके भिन्न है। जेएसवीसी वाइल्डकार्ड का सम्मान नहीं करेगा या सिर्फ lib/dir निर्दिष्ट करेगा। इसके बजाय, मुझे "CLASS_PATH = $ (echo" $ LIB_PATH "/ *। Jar | tr '' ':')" का उपयोग करके क्लासपाथ का स्पष्ट रूप से निर्माण करना पड़ा। मैं -Dlog4j.configuration निर्दिष्ट करने की कोशिश कर रहा एक स्नैग में भी भाग गया। मैं आमतौर पर गुण फ़ाइल के लिए एक पूर्ण पथ निर्दिष्ट करता हूं, लेकिन इसे jsvc के साथ काम करने के लिए, मुझे इसे फ़ाइल के साथ एक यूआरएल के रूप में लिखना था: /// उपसर्ग। मैं जल्द ही आरएचईएल पर भी परीक्षण करूँगा। – ayang