2016-05-21 8 views
7

में एचटीएमएल फाइल लोड करें मैं अपने जावाएफएक्स एप्लिकेशन के WebView में एक HTMLfile लोड करना चाहता हूं। फ़ाइल webviewsample पैकेज के अंदर, मेरी प्रोजेक्ट निर्देशिका में स्थित है।जावाएफएक्स संसाधन हैंडलिंग: वेबव्यू

मैं निम्नलिखित कोड का उपयोग किया है:

public void start(Stage primaryStage) throws Exception { 
    primaryStage.setTitle("WebView test");    

    WebView browser = new WebView(); 
    WebEngine engine = browser.getEngine(); 
    String url = WebViewSample.class.getResource("/map.html").toExternalForm(); 
    engine.load(url); 

    StackPane sp = new StackPane(); 
    sp.getChildren().add(browser); 

    Scene root = new Scene(sp); 

    primaryStage.setScene(root); 
    primaryStage.show(); 
} 

लेकिन यह कह रही है एक अपवाद फेंकता है:

आवेदन शुरू विधि में अपवाद java.lang.reflect.InvocationTargetException

उत्तर

11

आपको यह अपवाद मिलता है क्योंकि आपकी url चर इस रेखा पर शून्य है:

String url = WebViewSample.class.getResource("/map.html").toExternalForm(); 

आप getResource() साथ कई विकल्प हैं: संसाधन वर्ग रूप में एक ही निर्देशिका है

, तो आप

String url = WebViewSample.class.getResource("map.html").toExternalForm(); 

का उपयोग का उपयोग स्लेश शुरुआत कर सकते हैं ("/") का मतलब परियोजना रूट के सापेक्ष पथ है।:

अपने विशेष मामले में, यदि संसाधन webviewsample पैकेज में संग्रहीत किया जाता है, तो आप संसाधन के रूप में प्राप्त कर सकते हैं:

String url = WebViewSample.class.getResource("/webviewsample/map.html").toExternalForm(); 

एक शुरुआत डॉट स्लैश का उपयोग करना ("./") रिश्तेदार का मतलब वर्ग के पथ के लिए पथ:

कल्पना कीजिए कि आप rclass पैकेज webviewsample में संग्रहीत किया जाता है, और अपने संसाधन (map.html) उप-निर्देशिका res में संग्रहित है। आप URL प्राप्त करने के लिए इस आदेश का उपयोग कर सकते हैं:

String url = WebViewSample.class.getResource("./res/map.html").toExternalForm(); 

इस के आधार पर, अपने संसाधन अपनी कक्षा, तो के साथ एक ही निर्देशिका में है अगर:

String url = WebViewSample.class.getResource("map.html").toExternalForm(); 

और

String url = WebViewSample.class.getResource("./map.html").toExternalForm(); 

बराबर हैं।

आगे पढ़ने के लिए आप the documentation of getResource() देख सकते हैं।

+0

धन्यवाद। समस्या हल –

+0

बहुत अच्छा जवाब! – GOXR3PLUS

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