2010-05-13 6 views
10

मैं एक बड़े पैमाने पर पूर्व-मौजूदा परियोजना (विज़स्टर) से जावा एप्लेट बना रहा हूं। मैं मैक ओएस एक्स पर जेडीके 1.5 के साथ नेटबीन 6.7.1 का उपयोग कर रहा हूं।मैं एकाधिक .jar पुस्तकालयों के साथ एक एप्लेट कैसे पैकेज करूं?

मैं एप्लेट को अपने एकल आउटपुट से चलाने की कोशिश कर रहा हूं .jar फ़ाइल, लेकिन जब मैं ऐसा करता हूं, तो यह कहता है कि "एप्लेट लोड" फ़ायरफ़ॉक्स में स्क्रीन, और जावा कंसोल में कुछ भी नहीं है, लेकिन एप्लेट के लिए विंडो में कुछ भी दिखाई नहीं देता है। मेरे पास फ़ायरफ़ॉक्स में पिछली त्रुटियां हैं, जिनमें "एप्लेट नॉटलोडेड: क्लासडिफ नॉटफाउंड एरर" और सुरक्षा त्रुटियां भी शामिल हैं, लेकिन मेरे जावा कंसोल में कभी भी कोई आउटपुट नहीं है। यहाँ एप्लेट के लिए html फ़ाइल है:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
    <head> 
    <title></title> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    </head> 
    <body> 
    <applet codebase ="." code="zuve.ZuveApplet.class" 
      archive="ZuveApplet.jar" 
      height="1000" width="1000"/> 
    </body> 
</html> 

zuve.ZuveApplet.class कहां है, जहां मेरे मुख्य विधि स्थित है, और "ZuveApplet.jar" उत्पादन जार फ़ाइल का नाम है। यहाँ ZuveApplet.java, मुख्य विधि वर्ग है:

package zuve; 

import vizster.Vizster; 
import vizster.VizsterLib; 
import java.applet.Applet; 

public class ZuveApplet extends Applet { 
    public static final String DEFAULT_START_UID = "186297"; 

    @Override 
    public void init() { 
     new Vizster(); 
    } 

    public static void main(String[] argv) { 
     VizsterLib.setLookAndFeel(); 
     //String startUID = argv.length > 0 ? argv[0] : DEFAULT_START_UID; 
     String startUID = DEFAULT_START_UID; 
     String file = argv.length > 0 ? argv[0] : null; 
     new Vizster(startUID, file); 
    } 
} 

एप्लेट चलाता है पूरी तरह से अच्छी तरह से एक स्टैंडअलोन (html में नहीं एम्बेडेड), लेकिन मैं इसे एम्बेड करने के लिए की जरूरत है। "विज़स्टर" ऑब्जेक्ट एक जेएफआरएएम का विस्तार है, इसलिए मुझे लगता है कि मुझे बस इसका एक उदाहरण बनाने और इसे एक एप्लेट में जोड़ने में सक्षम होना चाहिए। क्या इससे कहीं अधिक जटिल हो सकता है?

दुर्भाग्य से मैं जावा और एप्लेट्स में नया हूं। मैंने सोर्स ट्री स्ट्रक्चर के बारे में बहुत सी फोरम पोस्ट देखी हैं, इसलिए:

1) क्या यह एक समस्या है कि मैं एकाधिक पैकेज का उपयोग कर रहा हूं? वे सभी मेरी परियोजना की src निर्देशिका में हैं।

2) क्या मुझे जावा जावा निर्देशिका में रखने की ज़रूरत है? मुझे पता है कि बहुत से लोगों के पास क्लासपाथ मुद्दे हैं, लेकिन मैं एक आधुनिक आईडीई का उपयोग कर रहा हूं, जिसे मैंने सोचा था कि मेरे लिए यह सब कुछ ख्याल रखता है।

3) नेटबीन जावा वेब एप्लिकेशन प्रोजेक्ट में अपनी प्रोजेक्ट आयात करते समय, क्या मुझे प्रोजेक्ट में एप्पल को .jar के रूप में जोड़ना चाहिए, या क्या मुझे पूरी परियोजना जोड़नी चाहिए?

4) मूल रूप से जब मैंने इस एप्लेट को बनाया था, तो मेरे पास सिर्फ कुछ स्रोत फाइलें थीं और .jar पुस्तकालयों का एक समूह निर्भरता के रूप में था, लेकिन जब मैंने आउटपुट का निरीक्षण किया .jar, मैंने देखा कि संकलित स्रोत फाइलें थीं। पुस्तकालयों से फाइलों का कोई निशान नहीं था। क्या यह होना चाहिए? मैंने देखा कि अगर मैंने आउटपुट को अपने फ़ोल्डर से आउटपुट ले जाया है, तो यह अब स्टैंडअलोन नहीं चला सकता है। मैंने सोचा था कि .jars स्वयं निहित होना चाहिए, यह सच नहीं है? क्या निष्पादन योग्य जार बनाने के बारे में मुझे कुछ पता होना चाहिए?

5) एक तरफ नोट पर, क्या एचटीएमएल में एप्लेट टैग में बताए गए एप्लेट का आकार बिल्कुल एप्लेट के आकार से मेल खाता है?

भारी पोस्ट के लिए खेद है, और अविश्वसनीय रूप से अस्पष्ट समस्या है, मैं एक टीम के साथ काम कर रहा हूं जिसमें कोई भी एप्लेट या जावा (हमारे असली असली, मुझे पता है) के बारे में कुछ भी नहीं जानता है। किसी भी प्रकार की सहायता या सामान्य सुझाव वास्तव में मदद करेंगे।

धन्यवाद!

उत्तर

15

आप संग्रह विशेषता में कई जार निर्दिष्ट कर सकते हैं:

<applet codebase ="." code="zuve.ZuveApplet.class" 
     archive="ZuveApplet.jar,thing.jar,anotherThing.jar" 
     height="1000" width="1000"/> 

एक JFrame, एक शीर्ष स्तर कंटेनर है तो आप अपने एप्लेट में जोड़ने के लिए सक्षम नहीं होगा। आप अपने ऐपलेट को अपनी ऑब्जेक्ट का एक उदाहरण बना सकते हैं और इसे अपनी खिड़की खोलने दें। एक जेपीनेल में अपनी वस्तु को दोबारा करने के लिए एक और अधिक लचीला दृष्टिकोण होगा।एक जेपीनल के रूप में, इसे एक जेप्लेट या जेएफआरएएम में जोड़ा जा सकता है यदि आप इसे एप्लिकेशन के रूप में चलाने का समर्थन करना चाहते हैं।

JNLP पर भी एक नज़र डालें, क्योंकि इससे आप अपने कोड को एप्लेट या एप्लिकेशन के रूप में तैनात कर सकते हैं और प्रिंटिंग और स्थानीय फ़ाइल पहुंच के लिए APIs भी प्रदान करते हैं। सरल एप्लेट्स के लिए कार्यक्षमता उपलब्ध नहीं है।

+0

वाह! त्वरित प्रतिक्रिया के लिए धन्यवाद, जो बहुत जानकारीपूर्ण था। – mag725

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