2009-06-22 7 views
15

मुझे पता है कि applet, object, embed टैग और JavaScript का उपयोग करके एक एप्लेट को कैसे तैनात किया जाए, लेकिन मैं सर्वोत्तम दृष्टिकोण (अंतिम उपयोगकर्ता अनुभव के संदर्भ में) के बाद हूं।जावा एप्लेट को तैनात करने के लिए रोल्स-रॉयस तरीका क्या है?

सूर्य उसी पृष्ठ पर the applet tag और mixed embed/object tag का उपयोग करने का सुझाव देता है।

  1. क्रॉस ब्राउज़र समर्थन:

    मैं क्या कर रहा हूँ पर विचार पीछा कर रहा है।

  2. गलत जावा संस्करण मिलने पर पृष्ठ डाउनलोड करने के लिए फ़ॉलबैक (उदाहरण के लिए 1.5)।
  3. जावा वीएम प्रारंभ अवधि दोनों के लिए पृष्ठ लोड हो रहा है और जब जार डाउनलोड किया गया है (आदर्श रूप से एक प्रगति पट्टी के साथ एक कस्टम स्पलैश स्क्रीन)। how to deploy, check for 1.6, और Plugin framework:

सवाल से पहले कहा गया है। इनमें से कोई भी मेरे प्रश्न का पूरी तरह उत्तर नहीं देता है। मैं वेब स्टार्ट या जावा एफएक्स पर भी विचार नहीं कर रहा हूं।

मेरा वर्तमान समाधान जावा 1.1 के लिए संकलित एक अतिरिक्त छोटा परीक्षण एप्लेट शामिल करना है। यदि जावा प्री-1.5 पाया जाता है तो यह पेज को विफलता पृष्ठ पर रीडायरेक्ट करता है। यदि कोई जावा नहीं मिला है तो पृष्ठ उपयोगकर्ता को java.com पर जाने के लिए कहता है। यह स्वीकार्य रूप से काम करता है, लेकिन खराब है क्योंकि इसे एक अतिरिक्त एप्लेट की आवश्यकता होती है और वीएम शुरू होने पर कुछ भी नहीं दिखाती है।

+0

तुम क्या आप "रोल्स रॉयस रास्ता"? द्वारा –

+2

रंगीन रास्ता परम कहने के लिए मतलब पर विस्तार किया जा सका ।/सबसे अच्छा – Pool

उत्तर

6

देखें PulpCore's solution (लाइसेंस: BSD)।

एक उदाहरण: the Milpa game ... अब, अगर मैंने इसे कभी देखा तो रोल्स-रॉयस एप्लेट परिनियोजन है।

और - पूरी तरह से सहमत है, सूर्य की परिनियोजन टूलकिट को अक्षम जावा को संभालने की ज़रूरत है - ऐसा लगता है कि वर्तमान में यह पूरी तरह से अनदेखा करता है।

+0

हां, यह बहुत अच्छा है! – Pool

1

सर्वोत्तम क्रॉस-ब्राउज़र संगतता के लिए, आपको एसयूएन की सलाह का पालन करना चाहिए, विशेष रूप से मिश्रित एम्बेड/ऑब्जेक्ट टैग का उपयोग करना चाहिए। यह बदसूरत है, लेकिन आपको सबसे अच्छा कवरेज देता है।

+0

मैंने पाया कि सूर्य की दृष्टिकोण पेज डाउनलोड करने के लिए अग्रेषण ब्राउज़रों के साथ समस्या नहीं थी (या डाउनलोड फाइल करने के लिए) यदि जावा उपलब्ध नहीं था -। मैं दूसरे लोगों के अनुभवों को सुनने के लिए दिलचस्पी होगी – Pool

1

प्रारंभ पृष्ठ पर एक छोटा ऐपलेट होने पर विचार करें, जो ब्राउज़र को असली एप्लेट पृष्ठ पर जाने के लिए कहता है।

प्रारंभ पृष्ठ पर, "आप जावा यहां" लिंक प्राप्त कर सकते हैं।

मेरे अनुभव में, बुरा जावास्क्रिप्ट बुरा समर्थन :(

यह भी ध्यान रखें देता है कि जावा 6 यू 10 जावा WebStart उपयोग कर सकते हैं एप्लेट तैनात करने के लिए। यह एक अच्छा उपयोगकर्ता अनुभव अपने उपयोगकर्ताओं को इस संस्करण या बाद में हो, तो हो सकता है

+0

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

+0

अधिक जानकारी जो आप प्रारंभ में प्रदान करते हैं, आपको बेहतर उत्तर मिलते हैं ... –

3

मुझे जावास्क्रिप्ट को सबसे अच्छा समाधान मिल गया है। आईई के लिए, ऑब्जेक्ट टैग लिखें और classid attribute के माध्यम से जेआरई के सटीक न्यूनतम संस्करण को नियंत्रित करें, अन्य सभी चीज़ों के लिए एक एम्बेड टैग = "application/x-java- एप्लेट; संस्करण = 1.5 "ठीक काम करता है। दोनों जावा से बाहर (या पूरी कमी) जावा के साथ मुकाबला करने के लिए अंतर्निहित ब्राउज़र तंत्र का उपयोग करते हैं।

आप न्यूनतम संस्करण के रूप में 1.5.0 निर्दिष्ट करने जैसी फैंसी चीजें भी कर सकते हैं, लेकिन auto-download to 1.6 सेट करें ताकि जावा के बिना किसी को 1.5 के बजाय नवीनतम जेआरई मिल सके।

जिस परियोजना पर मैंने काम किया है, उसने कई वर्षों तक अपना स्वयं का क्रॉस-प्लेटफ़ॉर्म जेएस रैपर लॉन्च किया है, लेकिन जावा 6 अपडेट 10 सूर्य के साथ deployJava.js बनाया गया है जिसका उद्देश्य आपके लिए इन सभी समस्याओं को हल करना है।

8

पूरे वेब पर पुरानी और पुरानी जानकारी के साथ बहुत संघर्ष करने के बाद ऐसा लगता है कि वास्तव में एप्लेट को तैनात करने का वास्तव में एक आसान तरीका है - बस सूर्य को आपके लिए सही टैग लिखने दें!

<script src="http://java.com/js/deployJava.js"></script> 
<script> 
    var attributes = { 
    code:'java2d.Java2DemoApplet.class', 
    archive:'Java2Demo.jar', 
    width:710, 
    height:540 
    }; 
    var parameters = { 
    fontSize:16 
    }; 
    var version = '1.6' ; // whichever minimum version you want to target, null works also 
    deployJava.runApplet(attributes, parameters, version); 
</script> 

अगर जावा स्थापित नहीं कर रहा है पृष्ठ डाउनलोड करने के लिए, एक आकर्षण, क्रॉस-ब्राउज़र की तरह काम किया है मेरे लिए ऑटो पुनर्निर्देशन के साथ।

अधिक यहाँ जानकारी:

http://java.sun.com/javase/6/docs/technotes/guides/jweb/deployment_advice.html#deplToolkit

+1

देरी प्रतिनिधि के लिए खेद है झूठ बोलना, मुझे इसे पकड़ने की जांच करनी पड़ी। फ़ायरफ़ॉक्स का उपयोग करना (और विकल्पों के माध्यम से जावा अक्षम करना) यह विफल रहता है। एप्लेट प्रदर्शित नहीं होता है, न ही कोई इंस्टॉलर या पुनर्निर्देशन होता है। यह थोड़ा कष्टप्रद है कि सूर्य को भी काम नहीं मिल रहा है। – Pool

+0

यह जावा के साथ ब्राउज़रों पर मेरे लिए काम करता है - क्या यह संभव है कि फ़ायरफ़ॉक्स यह स्वीकार कर रहा है कि जावा मौजूद है लेकिन अक्षम है? – jcoffey

+0

एक छुपे हुए एप्लेट का उपयोग करने के मामले में जो डोम में हेरफेर करने के लिए जावास्क्रिप्ट का उपयोग करता है, इन पैरामीटर को शामिल करना न भूलें। var पैरामीटर = {मेस्क्रिप्ट: 'सत्य', स्क्रिप्ट योग्य: 'सत्य'}; – Sandeep

1

हाय बस ऑब्जेक्ट टैग का उपयोग करें। यह एचटीएमएल विनिर्देश का हिस्सा है और अधिकांश ब्राउज़रों के साथ काम करता है।

स्थापना विकल्प के साथ फ़ॉलबैक सिर्फ टैग में कुछ टेक्स्ट लिख रहा है।

http://depth-first.com/articles/2008/02/20/demystifying-java-applets-part-1-cross-browser-standards-compliant-pure-html-deployment-using-the-object-tag

सादर

+0

दिलचस्प है, धन्यवाद - पर उस लेख की शुरुआत है कि वे क्या कहते हैं कि यह अधिरेखित के लिए एक लिंक है 'एप्लेट-fu' librabry http://products.metamolecular.com/2009/06/08/better-applet-deployment-with- एप्लेट-फु - सबसे पहले मैंने इसके बारे में सुना है - कल की जांच करेगा। – Pool

+0

मज़े करो! ध्यान दें कि ऑब्जेक्ट-विधि भी बहुत अच्छा काम करता है। (मुझे स्क्रिप्टिंग के बजाय मार्कअप के लिए प्राथमिकता है) :-) – tovare

1

ठीक है, पता है कि deployJava.js दस्तावेज़ लोड करते समय कहा जा बनाया गया है हो सकता है:

यहाँ इस विषय पर एक उपयोगी लेख है। तो यदि आप डीओएम के निर्माण के बाद, एक घटना पर एप्पल गतिशील रूप से सम्मिलित करते हैं, तो आप इस नए मानक दृष्टिकोण के साथ भाग्य से बाहर हैं। हमें ऑब्जेक्ट/एम्बेड/नोम्बेड निर्माण का उपयोग करना पड़ा।

संपादित: ओह, किसी को इस के लिए एक बेहतर रास्ता मिल गया है, लेकिन सूर्य के मूल deployJava.js के इस आवश्यक मार्गदर्शन फेरबदल, कृपया नीचे दिए गए लिंक देखें: Java Plug-In - Important addition to deployJava.js

2

+1 applet- के लिए पूल करने के लिए फू क्रोम, एफएफ, आईई 6,7,8 पर मेरे लिए काम किया। मैं इसे और अधिक रोल इस यहाँ से रॉयस प्राप्त कर सकते हैं नहीं लगता है:

http://products.metamolecular.com/2009/06/08/better-applet-deployment-with-applet-fu http://github.com/metamolecular/applet-fu

एक बिल्कुल सरल बात की तरह लगता है, वहाँ isn ' या तो बहुत अधिक दस्तावेज। लेकिन सुंदरता है !!

applet_fu.run(
    {'width':'550','height':'320'}, 
    { 
    'archive':'myapplet.jar', 
    'code':'com/example/MyApplet.class', 
    'foo':'bar' 
    }, 
    '1.4.2', 
    '<img src="/no-java.png" />' 
); 

हाँ सही thats, आप html में तमाचा अगर एप्लेट नहीं पाया जाता है प्रदर्शित करने के लिए कर सकते हैं। 1.4.2 भाग निम्न संस्करण है, यदि निम्न संस्करण पाया जाता है तो यह अब भी जावा नहीं दिखाएगा। foo: बार पैराम का एक उदाहरण है।

2

मैं तैनाती Java.js के खिलाफ दृढ़ता से अनुशंसा करता हूं। मुझे संदेह है कि यह कहीं भी परीक्षण किया गया था। बस अपने कोड को देखो:

 
s = '<param name="' + parameter + '" value="' + 
       parameters[parameter] + '">'; 

यह टैग बंद नहीं होती है! और क्रोम इस पर पूरी तरह से मुझे "असहज त्रुटि: INVALID_STATE_ERR: डोम अपवाद 11" देता है!Document.write के उपयोग का जिक्र नहीं करना है जिसे आपको Java Plug-In - Important addition to deployJava.js जैसी सामग्री से उबरना है।

पंजीकृत सिर्फ इस बताने के लिए, जैसा कि मैंने पूरा हताशा में चार घंटे तक इस दूसरे दिन के साथ काम कर :(

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