2011-09-23 17 views
5

में जार एम्बेड करने के लिए कैसे पहले से ही इस पर बहुत सारे संसाधन हैं लेकिन मैं इसे काम करने के लिए प्रतीत नहीं कर सकता। मैं क्या गलत कर रहा हूं? जार फ़ाइल पर है:एचटीएमएल

http://www.alexandertechniqueatlantic.ca/multimedia/AT-web-presentation-imp.jar

और कोड मैं एम्बेड करने के लिए उपयोग कर रहा हूँ है:

<APPLET ARCHIVE="multimedia/AT-web-presentation-imp.jar" 
     CODE="ImpViewer.class" 
     WIDTH=100% 
     HEIGHT=100%> 
</APPLET> 

परीक्षण पृष्ठ मैं उपयोग कर रहा हूँ पर है:

http://www.alexandertechniqueatlantic.ca/test.php

जब मैं जार डाउनलोड करता हूं तो यह ठीक चलता है, इसलिए मुझे यकीन है कि समस्या केवल एचटीएमएल एम्बेडिंग के साथ है। Pleas मदद करो!

java.lang.ClassCastException: ImpViewer cannot be cast to java.applet.Applet

+0

ImpViewer से क्या प्राप्त होता है? क्या आप इसकी कक्षा परिभाषा शामिल कर सकते हैं? – Sam

+0

हाय सैम, मुझे नहीं पता, मुझे स्रोत कोड के बिना सौंप दिया गया। यह ऐप्पल से विरासत में नहीं है जो निश्चित रूप से है! क्या इसके बिना किसी वेबसाइट में इसे क्रैम करने के लिए वैसे भी है? – Bill

उत्तर

7
java.lang.ClassCastException: ImpViewer cannot be cast to java.applet.Applet 

'एप्लेट' नहीं एक एप्लेट है:

इसके अलावा, मैं निम्नलिखित त्रुटि मिलती है।

बीटीडब्ल्यू - अच्छा यूआई। जिस तरह से लाल स्प्लैश 'वेलकम परिचय कार्यशाला' पृष्ठ में फंस जाता है। बहुत चिकना।

Java Web Start (& का उपयोग कर लिंक से लॉन्च करें) कृपया वेब पेज में ऐसे सुंदर UI को आज़माएं और क्रैम न करें)।


ग्राहक जीयूआई पर जोर तो एक वेब साइट में crammed जा रहा है (उन्हें मेरे & के लिए तमाचा) इस हैक का प्रयास करें।

/* 
<APPLET 
    ARCHIVE="AT-web-presentation-imp.jar" 
    CODE="ImpViewerApplet" 
    WIDTH=720 
    HEIGHT=564> 
</APPLET> 
*/ 
import java.awt.*; 
import java.applet.*; 
import java.util.*; 

public class ImpViewerApplet extends Applet { 

    public void init() { 
     setLayout(new BorderLayout()); 
     Window[] all = Window.getWindows(); 
     ArrayList<Window> allList = new ArrayList<Window>(); 
     for (Window window : all) { 
      allList.add(window); 
     } 
     String[] args = {}; 
     ImpViewer iv = new ImpViewer(); 
     iv.main(args); 

     all = Window.getWindows(); 
     for (Window window : all) { 
      if (!allList.contains(window) && window.isVisible()) { 
       if (window instanceof Frame) { 
        Frame f = (Frame)window; 
        Component[] allComp = f.getComponents(); 
        Component c = f.getComponents()[0]; 
        f.remove(c); 
        f.setVisible(false); 
        add(c); 
        validate(); 
       } 
      } 
     } 
    } 
} 

'हैक' शब्द पर जोर दिया जाता है।

  1. Frame गायब होने से पहले स्क्रीन पर फ्लैश होगा।
  2. यह केवल 720x564 पीएक्स पर काम करेगा, java.awt.Frame के विपरीत जो कि किसी भी आकार के आकार में था। लेकिन फिर, आपकी '100%' चौड़ाई/ऊंचाई वैसे भी थोड़ा आशावादी थी। कुछ ब्राउज़र उन बाधाओं का सम्मान करेंगे, अन्य नहीं करेंगे।
+0

हाय एंड्रयू, पूरक के लिए धन्यवाद, मैंने यूआई नहीं लिखा, यह मेरे ग्राहक द्वारा मुझे सौंपा गया था। और वह सिर्फ एक वेबसाइट में घूमना चाहता है, इसलिए यह कहने का मेरा स्थान नहीं है। क्या वैसे भी यह संभव है? – Bill

+0

अपडेट देखें। –

1

यह प्रयास का एक सा लिया, लेकिन अपने ImpViewer वर्ग निम्नलिखित परिभाषा है:

public class ImpViewer extends ImWindow 
    implements Printable, Runnable 
{ 
    [...] 

ImpViewer नहीं है एक Applet ऐसा होने की जरूरत है, लेकिन इसके बजाय एक ImWindow है। इसे Applet या शायद ImApplet से प्राप्त होना चाहिए।

किसी भी दर पर, एंड्रयूज जावा वेब स्टार्ट का उपयोग करने का विचार कानूनी है। आपके द्वारा देखा गया ऐप डेस्कटॉप ऐप की तरह दिखता है।

+0

आप यहां मेरी पुरानी छात्र वेबसाइट पर जावा वेब स्टार्ट का एक उदाहरण देख सकते हैं: [सैम टेट्रिस पेज] (http://students.cs.byu.edu/~samuelms/applets/tetris.php)। [जावा वेबस्टार्ट का उपयोग कर रन टेट्रिस एप्लेट] देखें (http://students.cs.byu.edu/~samuelms/applets/tetris/tetris.jnlp) लिंक। यह केवल आपको उदाहरण देने के लिए है कि उपयोगकर्ता का अनुभव कैसा होगा। – Sam

+0

ठीक है, मैं बस अपने क्लाइंट को JavaWS का उपयोग करने के लिए कहूंगा। जानकारी के लिए धन्यवाद। – Bill

+0

ऊपर दिए गए एक संपादन में 'इसे एक एप्लेट हैक में फेंकने' के बावजूद, मैं दृढ़ता से अनुशंसा करता हूं कि आप जेडब्ल्यूएस दृष्टिकोण लें। –

1

एक Applet एक जावा घटक है जो वेब पेज में एम्बेडेड दिखाने के लिए सही कॉल को संभालता है। आपके पास उत्पाद (जेएआर फ़ाइल) में प्रोग्राम चलाने के लिए आवश्यक सब कुछ शामिल है; हालांकि, वेब पेज में एम्बेड किए गए प्रोग्राम को चलाने के लिए इसमें सही इंटरफ़ेस (एप्लेट) नहीं है।

उत्पाद के लेखक से बात करें (यदि वह लेखक उपलब्ध नहीं है, तो दस्तावेज़ीकरण देखें) और देखें कि एक एप्लेट इंटरफ़ेस उपलब्ध है या नहीं। शायद यह केवल एक अलग वर्ग नाम का उपयोग करने का मामला है। यदि ऐसा लगता है कि ऐसा इंटरफ़ेस उपलब्ध नहीं है, तो किसी ने किसी वेब पेज में "एम्बेड करने योग्य" बनाने के लिए आवश्यक कार्य नहीं किया है। अपने उत्पाद को अधिक विस्तार से जानने के बिना, यह निर्धारित करना आसान नहीं है कि उत्पाद में ऐप्पल इंटरफ़ेस बनाने का प्रयास आसान है या नहीं।

यदि आपके पास स्रोत कोड नहीं है, तो आपके पास जो कुछ भी है, उसके लिए ऐप्पल इंटरफ़ेस विकसित करने के प्रयास की मात्रा स्रोत कोड के साथ होने वाली अज्ञात राशि से भी अधिक है।

ऐसे कुछ उत्पाद हैं जो वेब ब्राउज़र से एप्लिकेशन को देखने और नियंत्रित करने की अनुमति देते हैं, भले ही प्रश्न में एप्लिकेशन को वेब पेज में एम्बेड करने के लिए डिज़ाइन नहीं किया गया हो। ये उत्पाद महंगा और स्वामित्व वाले होते हैं; लेकिन, यदि यह वास्तव में मिशन-महत्वपूर्ण है (और यदि यह पर्याप्त पैसा बनाता है) तो व्यय और प्रयास सहनशील हो सकता है। इस तरह के समाधान के साथ, वेब ब्राउज़र वास्तव में एक कॉन्फ़िगर "एप्लिकेशन सर्वर" में एक विंडो खोलता है जो कनेक्शन स्थापित होने पर एप्लिकेशन को पूर्ण स्क्रीन मोड में लॉन्च करता है। हां, यह एक अजीब वास्तुकला है; हालांकि, इस तरह के एक अजीब वास्तुकला उद्देश्य से मौजूद है क्योंकि यह वास्तव में एकमात्र तरीका है जब कुछ अन्य वातावरण में एप्लिकेशन नहीं चलाया जा सकता है।

इस स्थिति में ऐसे समाधान के लिए साइट्रिक्स को देखें, जिस पर आप इसे बर्दाश्त कर सकते हैं (याद रखें कि इसमें अतिरिक्त विंडोज लाइसेंस शामिल हैं) और आप इसका प्रदर्शन और क्विर्क बर्दाश्त कर सकते हैं।

+0

+1 शायद जो भी इसे उपयोगकर्ता को देता है वह इसे एप्लेट्स के साथ संगत बना सकता है। ऐसा लगता है कि ऐप "फैकल्टी-पीसी डीएएल" द्वारा "पावरपॉइंट 4.0 के लिए इंपैटिका" के साथ बनाया गया था। इसके अलावा, जाहिर है 'com.impatica.v402.ImPlayer.class' एप्लेट बढ़ाता है। हालांकि, मैं इसके साथ कुछ भी नहीं हो सका। :( – Sam