2014-09-23 6 views
7

मैं विंडोज के लिए जावाएफएक्स एप्लिकेशन कैसे तैनात कर सकता हूं ताकि मेरा जार युक्त एक्सई व्यवस्थापक अधिकारों के साथ लॉन्च हो? मैंने यह तैनाती की अपनी पुरानी विधि के साथ काम किया था, लेकिन नेटबीन्स का रास्ता बहुत आसान और अधिक कुशल लगता है इसलिए मैं वास्तव में इसका उपयोग करना चाहूंगा। यह अतिरिक्त कदम है कि मैं सामान्य रूप से करने की जरूरत है की एक बहुत कुछ को खत्म करने में मदद करता है ...नेटबीन्स जावाफ़ैक्स ऐप व्यवस्थापक अधिकार

मुझे यकीन है कि समाधान सही मेरी नाक के नीचे है, लेकिन मैं सिर्फ यह पता लगा नहीं कर पा रहे!

सादर,

एलेन

+0

गंभीरता के साथ repackage? 2 महीने और केवल 16 विचार? – Will

+0

@ केवल एक त्वरित सवाल होगा, जब आप .exe फ़ाइल चलाते हैं, तो क्या आप इसे डबल क्लिक करके व्यवस्थापक के रूप में चलाने के लिए चाहते हैं, या आप .exe फ़ाइल -> व्यवस्थापक के रूप में चलाकर जार को बाहर निकालना चाहते हैं? –

+0

दोनों, अधिमानतः। मुझे पता है (या कम से कम सोचें) कि आपको एक .jar एलिवेटेड चलाने के लिए कोड-साइन करने की आवश्यकता है ... – Will

उत्तर

0

समाधान मैं मेरे लिए बहुत अच्छी तरह से काम करता है पाया है, तो यहां मैं यह कर दिया गया है:

1) JavaFX Netbeans परियोजना के JFX-impl.xml फ़ाइल में कस्टम JDK स्थान को परिभाषित करें। युक्ति: "plat.setBasedir" के लिए खोजें और पैरामीटर को बदलें: plat.setBasedir ("पथ \ to \ jdk \ और \ not \ jre")। यह सुनिश्चित करता है कि जेडीके आपके इंस्टॉलर में एम्बेड किया जाएगा।

2) जावाएफएक्स प्रोजेक्ट के लिए देशी तैनाती सेट करें (आप अपनी परियोजना के लिए कभी भी कितनी बार फिट बैठते हैं)।

3) एक देशी exe के रूप में अपने आवेदन तैनात।

4) स्थानीय रूप से कहीं भी अपना एप्लिकेशन इंस्टॉल करें।

5) विंडोज एसडीके 7.1 स्थापित करें। आपको मैनिफेस्ट टूल (mt.exe) की आवश्यकता है, तो आप इसे प्रोग्राम फाइल/विंडोज़ एसडीके/...

6) व्यवस्थापक अधिकारों के लिए एक मैनिफेस्ट बनाएं (उदाहरण स्टैक ओवरफ्लो या Google पर पाए जा सकते हैं) । युक्ति: जब आप इसे बनाते हैं तो फ़ाइल नाम इस तरह कुछ दिखना चाहिए-> "प्रोग्राम नाम.exe.manifest"।

7) अपने आवेदन के .exe में मैनिफेस्ट इंजेक्ट करने के लिए mt.exe का उपयोग करें। युक्ति: प्रारंभ सीएमडी व्यवस्थापक अधिकार के साथ और चलाने mt.exe तो जैसे -> mt.exe -manifest "पथ \ के लिए \ प्रकट \ Program Name.exe.manifest" -outputresource: "\ पथ \ के लिए \ exe \ कि \ जरूरतों \ऊंचाई"।

8) चरण 7 में मैनिफेस्ट इंजेक्शन देने के बाद, आईएनएनओ सेटअप के साथ अपना स्वयं का सेटअप बनाएं जो नेटबीन्स के देशी तैनाती समारोह द्वारा बनाई गई सटीक संरचना को दोबारा तैयार करता है (इसमें अब नए सेटअप में आपका नया एलिवेटेड .exe शामिल होगा)।

बुनियादी विचार:

NetBeans के साथ परिनियोजित करें -> स्थानीय स्तर पर स्थापित करें -> सम्मिलित करें ऊंचाई प्रकट -> INNO सेटअप निर्माता

1

इनाम जमा करने के बाद मैं तुम्हारे लिए एक जवाब हो सकता है: क्या आप जानते हैं कैसे JavaFX बंडलर के साथ एक कस्टम INNO स्क्रिप्ट का उपयोग करने हैं , आप एक कस्टम INNO उपयोग कर सकते हैं स्क्रिप्ट और रजिस्ट्री है कि आवेदन के लिए बाध्य करेगा करने के लिए एक प्रविष्टि जोड़ने के ऊपर उठाया करने के लिए चलाएँ:

[Registry] 
Root: HKCU; Subkey: "Software\Microsoft\Windows NT\CurrentVersion\Appcompatflags\layers"; ValueType: string; ValueName: "{app}\File Name.exe"; ValueData: "RUNASADMIN"; 

यह नहीं आदर्श (मेरे लिए, वैसे भी) है, लेकिन सबसे महत्वपूर्ण बात यह है कि यह काम करता है है।

यदि आपको इस पर अधिक स्पष्टीकरण की आवश्यकता है तो कृपया मुझे बताएं और मैं आपको इसके माध्यम से चल सकता हूं।

+0

धन्यवाद विल! हालांकि मुझे एक समाधान मिला जो काम करता है। देर से उत्तर के लिए क्षमा करें। मैं इसे उत्तर में पोस्ट करूंगा। – Alen

0

संकेत मिलता है कि निष्पादन योग्य ऊपर उठाया जाना चाहिए एक आवेदन प्रकट जोड़ें। this MSDN blog entry देखें। संसाधन के रूप में, अपनी परियोजना में स्थैतिक एप्लिकेशन मैनिफेस्ट (एम्बेडेड नहीं) जोड़ें।

+0

नेटबीन में यह वास्तव में कैसे करता है। यह जावा एप्लिकेशन है, विंडोज़ एप्लीकेशन नहीं। – Will

+0

ओपी ने कहा कि यह एक .exe है जिसमें आपका .jar है। जावा अनुप्रयोग .exe में निहित नहीं हैं - वे .jar फ़ाइलों में निहित हैं। इसके अलावा, जावा में सिस्टम-स्तर "व्यवस्थापक अधिकार" की कोई धारणा नहीं है। नेटबीन में, ओपीई को बनाने के लिए उपयोग की जाने वाली ओपी को जो भी प्रक्रिया संसाधन संसाधन बनाने के लिए एक प्रक्रिया होनी चाहिए। क्या मैं ओपी के जूते में था, मैं मेवेन का उपयोग कर रहा हूं और जेनेल लॉन्चर (.exe) में और मैवेन बिल्ड प्रक्रिया के हिस्से के रूप में, जेनेल के स्टब को MyApplication.exe पर कॉपी कर रहा हूं और MyApplication.exe.manifest को ' res/'निर्देशिका। – user314104

+0

अरे उत्तर के लिए धन्यवाद! मुझे एक समाधान मिला है जिसमें आप इस अभिव्यक्ति को शामिल करते हैं, मैं अपने स्वयं के प्रश्न का उत्तर देने के लिए समाधान पोस्ट करूंगा। – Alen