2010-04-01 17 views
5

मैं ग्रहण का उपयोग कर अपना पहला जावा एप्लिकेशन विकसित कर रहा हूं। मुझे हाल ही में JVM में -Xmx256M पास करके आवंटित स्मृति की मात्रा समायोजित करने की आवश्यकता है। आवेदन वर्तमान में एक चलने योग्य जार के रूप में पैकेज है और एनएसआईएस का उपयोग कर स्थापित किया गया है।एनएसआईएस स्क्रिप्ट से जावा वीएम के लिए तर्क पास करना

मुझे स्थापित होने के बाद जार फ़ाइल में तर्क पारित करने में समस्या आ रही है। ऐसा करने के लिए आम अभ्यास क्या है? यहाँ है कि मैं क्या वर्तमान में मेरे NSI फ़ाइल में कर रहा हूँ है:

C:\WINDOWS\system32\javaw.exe -Xmx256M -jar C:\Program Files\Foo\Foo.jar 

दुर्भाग्य से इस स्थान के कारण काम नहीं करता:

CreateShortcut "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" "$SYSDIR\javaw.exe" "-Xmx256M -jar $INSTDIR\Foo.jar" 

इस में निम्नलिखित खिड़कियों पर शॉर्टकट लक्ष्य के रूप में बनाया जा रहा परिणाम C: \ प्रोग्राम फ़ाइलें, अगर मैं मैन्युअल रूप से बनाए गए उद्धरण सभी शामिल करने के लिए लिंक को बदलने में अच्छी तरह से है:

C:\WINDOWS\system32\javaw.exe -Xmx256M -jar "C:\Program Files\Foo\Foo.jar" 

अद्यतन: जार और -Xmx256M के आदेश बदली। हालांकि यह मुद्दा वही बना हुआ है। जार फ़ाइल के रास्ते में रिक्त स्थान एक समस्या पैदा कर रहे हैं। मुझे लगता है कि मुझे या तो कमांड में कोट्स जोड़ने का एक तरीका ढूंढना होगा, जैसा कि मैंने मैन्युअल रूप से लक्ष्य बदल दिया है, या अपना दृष्टिकोण पूरी तरह बदल दिया है!

उत्तर

4

एनएसआईएस तारों को सिंगल कोट्स, डबल कोट्स या पिछड़े सिंगल कोट के साथ उद्धृत किया जा सकता है। आप $ 12 ($ \ "आदि) से भी बच सकते हैं

CreateShortcut "$SMPROGRAMS\$StartMenuGroup\$(^Name).lnk" '"$SYSDIR\javaw.exe"' '-Xmx256M -jar "$INSTDIR\Foo.jar"' 
2

क्या आपने उद्धरण रखने और पथ विभाजक से बचने की कोशिश की है?

C:\WINDOWS\system32\javaw.exe -Xmx256M -jar "C:\\Program Files\\Foo\\Foo.jar" 
+0

एनएसआईएस \ N का उपयोग नहीं करता है, और यह $ \ (पथों से बचने की कोई आवश्यकता नहीं है) – Anders

1

सुंदर यकीन है कि आप के आसपास उद्धरण रखना चाहिए "C: \ WINDOWS \ system32 \ javaw.exe" भले ही कोई रिक्त स्थान नहीं है।

संबंधित मुद्दे