कैसे ठीक करने के लिए/workaround java.lang.reflect.InvocationTargetException




web applet (2)

मेरे पास एक विशेष रूप से परेशान त्रुटि के बारे में एक सवाल है जो मुझे पता नहीं चल पाया है, बहुत कम काबू। जब भी मैं अपनी वेबसाइट पर एक जावा एप्लेट (ऐप्पलेट या जेएपलेट) चलाने की कोशिश करता हूं, तो मुझे यह त्रुटि पॉप-अप के रूप में मिलती है:

 java.lang.reflect.InvocationTargetException

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

एक विशिष्ट उदाहरण के लिए, मेरा सबसे हालिया प्रयास है; पहला जावा कोड:

package cmtoolbox;

public class CMToolbox {
    public static void main(String[] args) {
        MainApplet a = new MainApplet();
    }
}

यह वर्ग स्थापित करता है:

package cmtoolbox;

import javax.swing.JApplet;
import javax.swing.JButton;

public class MainApplet extends JApplet {
    public MainApplet() {
        JApplet main = new JApplet();
        main.setSize(800,600);
        JButton test1 = new JButton();
        test1.setText("Test");
        main.add(test1);
    }
}

मेरा HTML कोड:

<html>
<head>
  <title> Experimenting with Java applets </title>
</head>
<body>
  <p><applet code="CMToolbox.class" width="800" width="600">
    I wish. :)
  </applet></p>
</body>
</html>

मुझे लगता है कि हो सकता है कि वेब में इतने सारे चर (ऑपरेटिंग सिस्टम, ब्राउज़र प्रकार, आदि) हो सकते हैं ऐसा कुछ आंतरिक / सिस्टम-स्तर होता है जिसके कारण ... लेकिन मेरे कंप्यूटर पर जेआरई और जेडीके स्थापित हैं I वास्तव में क्यों नहीं मिलता ... वैसे भी, मुझे यकीन है कि मैं इस सड़क ब्लॉक को मारने वाले पहले व्यक्ति नहीं हूँ, लेकिन मुझे स्टम्प्ड मिल गया है इसलिए मैं इस विषय पर उपलब्ध किसी भी जानकारी की सराहना करता हूं। इसके अलावा, यदि आप किसी भी अच्छा जावा वेब ट्यूटोरियल को पूर्ण नोड के लिए जानते हैं जो महान भी होगा :)


InvocationTargetException 1 को फेंक दिया जाता है क्योंकि HTML कॉलिंग (लोड करने की कोशिश) कुछ ऐसा है जो एक ऐपलेट नहीं है। इसे बदलें:

  <p><applet code="MainApplet" width="800" width="600">
  </applet></p>

इसके अलावा, जैसा कि स्टीफन सी के उत्तर में बताया गया है init() विधि में कन्स्ट्रक्टर से सामान ले जाएं।

  1. InvocationTargetException एक चेक किए गए अपवाद है जो किसी अपवाद या अपवाद द्वारा InvocationTargetException गई अपवाद को लपेटता है

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

जब मैं यहां हूँ: क्यों कोड एक ऐपलेट है? यदि यह कल्पना के कारण है शिक्षक द्वारा, कृपया उन्हें देखें कि सीएस शिक्षकों को जावा एप्लेट्स को क्यों रोकना चाहिए


मेरा सुझाव है कि आप ओरेकल एप्लेट डेवलपमेंट ट्यूटोरियल पढ़ा। मैं एपलेट्स पर एक विशेषज्ञ नहीं हूं (कमेटी!), लेकिन आप कई चीजों को अलग ढंग से कर रहे हैं कि ट्यूटोरियल उन्हें कैसे करने का कहता है। उदाहरण के लिए, आप एक ऐपलेट लॉन्च करने के लिए एक main विधि का उपयोग नहीं करते हैं, और आपको init विधि में सेटअप करना चाहिए, कन्स्ट्रक्टर नहीं ( यहां देखें)।





invocationtargetexception