मैं विंडोज बैच प्रोग्रामिंग के लिए बिल्कुल नया हूं। जो मैं प्राप्त करना चाहता हूं वह जावा एप्लिकेशन के लिए स्टार्टअप स्क्रिप्ट लिखना है। फिर भी, यह जावा अनुप्रयोग शुरू करता है, बल्किविंडोज बैच और जावा: संयोजन -XX: OnOutOfMemoryError कमांड और बैच पैरामीटर
प्रयोग बाहर प्रिंट: जावा [-options] वर्ग [args ...]
(एक वर्ग निष्पादित करने के लिए)
या जावा [-options] जार jarfile [args ...]
(एक जार फ़ाइल निष्पादित करने के लिए)
...
जो इंगित करता है कि मेरे पैरामीटर सही ढंग से पहचाने नहीं गए हैं।
यहाँ नहीं काम स्क्रिप्ट के लिए मेरे MCVE है:
set memory=600000
java -XX:OnOutOfMemoryError="taskkill /PID %p" -Xmx%memory%K -jar MyApp.jar
असली परिदृश्य में, memory
आवेदन के लिए इष्टतम अधिक से अधिक ढेर आकार सेट करने के लिए की जाती है।
दोनों पैरामीटर में से एक को छोड़ना ऐप शुरू करता है। तो
java -XX:OnOutOfMemoryError="taskkill /PID %p" -jar MyApp.jar
और
set memory=600000
java -Xmx%memory%K -jar MyApp.jar
काम करता है, लेकिन मैं एक कॉल में काम करने के लिए दोनों मानकों की जरूरत है।
डालने की कोशिश करो '@echo on' /' @ off' में गूंज अपने स्क्रिप्ट ([यहां वर्णित] (http://stackoverflow.com/a/10237457/3788176)) और देखें कि यह वास्तव में "दोनों पैरामीटर" मामले में क्या निष्पादन कर रहा है। –
इनपुट के लिए धन्यवाद! 'Jech -XX: onOutOfMemoryError =" taskkill/pID memoryK -jar MyApp.jar' में प्रिंटिंग में '@echo' के परिणामों का उपयोग करना, जो ''' के साथ कुछ गलती को इंगित करता है, जो अब बंद नहीं है, और पैरामीटर, जो है जोड़ा नहीं गया ('% स्मृति%)' ... –
ऐसा लगता है कि '%' में '%' '%' को 'प्रतिस्थापन के लिए" खोलने "'% 'माना जाता है - मुझे लगता है कि' %% 'एक' '' 'के लिए टोकन है (जैसे' printf' जैसी विधियों)। –