मैं एक परियोजना का निर्माण कर रहा हूँ और WebEngine वर्ग का उपयोग करने की आवश्यकता है। तो मेरे पास 2 प्रोजेक्ट हैं, MainA और SecondBSecondB प्रोजेक्ट MainA पर निर्भर है, इसलिए इसे बनाने के बाद SecondB MainA libs फ़ोल्डर में एक जार फ़ाइल बन जाता है।
अभी। मुझे एक abc.html फ़ाइल खोलनी है जो SecondB संसाधनों के अंतर्गत है। स्थानीय रूप से इसका परीक्षण करते समय यह काम करता है, ऐप बनाते समय और सर्वर पर इसे तैनात करते समय यह विफल हो जाता है (शायद इसलिए कि यह SecondB जार फ़ाइल में है)। तो मैं जिस कोड का उपयोग कर रहा हूं वह है:

WebView browser = new WebView();
WebEngine webEngine = browser.getEngine();  
ClassLoader classLoader = getClass().getClassLoader();
String s = classLoader.getResource("subfolder/abc.html").toExternalForm();
webEngine.load(s);

विधि classLoader.getResource("subfolder/abc.html").toExternalForm(); कोड को स्थानीय रूप से चलाते समय एक सामान्य url लौटाती है और कुछ इस प्रकार है:

file:jar:C:/Something/MainA/libs/SecondB.jar!/subfolder/abc.html

क्या आपके पास कोई विचार है कि इस फ़ाइल को जार से कैसे लोड किया जाए? मैंने SO पर मिले कई विकल्पों की कोशिश की, लेकिन सफलता नहीं मिली

3
kamil.rak 7 फरवरी 2017, 16:04
.html फ़ाइल को समान संसाधन फ़ोल्डर में रखें और फिर एक जार फ़ाइल बनाएँ
 – 
minigeek
7 फरवरी 2017, 17:06
क्या आपका मतलब मुख्य परियोजना के संसाधन फ़ोल्डर से है?
 – 
kamil.rak
7 फरवरी 2017, 17:10
हां, जहां तक ​​मुझे पता है, उन्हें जार फ़ाइल में पैकेज करने के लिए उन्हें एक ही फ़ोल्डर में होना चाहिए
 – 
minigeek
7 फरवरी 2017, 17:26

2 जवाब

आप एक "संसाधन" पैकेज बना सकते हैं और अपनी फ़ाइलों को इस पैकेज में कॉपी कर सकते हैं और अपने फ़ाइल पथ तक पहुँचने के लिए उदाहरण के लिए एक HTML जिसका आप उपयोग कर सकते हैं: getClass().getResource("/resources/abc.html").toURI().toString() यह आपकी फ़ाइलों को आपके बनाए गए जार में यूआरएल प्राप्त करने के लिए प्रदान करता है। आशा है कि यह उपयोगी है।

1
GltknBtn 7 फरवरी 2017, 16:59
मेरे पास पहले से ही मेरे सेकेंडबी प्रोजेक्ट में एक संसाधन पैकेज है और यही वह जगह है जहां फ़ाइल है। या हो सकता है कि आप इसे संसाधनों के तहत मुख्य परियोजना में डाल दें? मैंने उस पर विचार किया, लेकिन इस समाधान को ईमानदार होना पसंद नहीं है।
 – 
kamil.rak
7 फरवरी 2017, 17:06
/resources उपनिर्देशिका तब तक बेमानी है जब तक आप इसे इस तरह से नहीं चाहते। लेकिन आमतौर पर /resource के अंदर कई उपनिर्देशिकाएं होती हैं। तो मेरा सुझाव है ...getResource("/doc/abc.html"), वगैरह
 – 
mk7
21 जून 2018, 07:18

मेरे लिए, मैंने यह किया

String fileloc = "/docs/help/userguide.html";
...
String fullLink = getClass().getResource(fileloc).toExternalForm();
...

मैं संसाधन फ़ोल्डर के अंदर एचटीएमएल फाइल स्टोर करता हूं। उदा./resources/docs/help/userguide.html

जैसे ही मैं संकलित जार चलाता हूं, इसमें javafx webengine द्वारा लोड होने में कोई समस्या नहीं है।

0
mk7 21 जून 2018, 07:13