इंटेलीजे से जार का निर्माण ठीक से कैसे करें?


519

मेरे पास एक परियोजना है जिसमें एक एकल मॉड्यूल और कुछ निर्भरताएं हैं। मैं एक अलग निर्देशिका में एक जार बनाना चाहता हूं, जिसमें संकलित मॉड्यूल शामिल है। इसके अलावा, मैं अपने मॉड्यूल के पास मौजूद निर्भरता रखना पसंद करूंगा।

कोई फर्क नहीं पड़ता कि मैं कैसे IntelliJ की "बिल्ड जार" प्रक्रिया को मोड़ देता हूं, मेरे मॉड्यूल का आउटपुट खाली दिखाई देता है (इसके अलावा एक मेटा-इंफो फ़ाइल)।

जवाबों:


602

यहाँ IntelliJ 10 http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/ के साथ जार बनाने का तरीका बताया गया है

File-> Project Structure-> Project Settings-> Artifacts-> क्लिक green plus sign-> Jar->From modules with dependencies...

ऊपर "कंकाल" सेट करता है जहां जार को बचाया जाएगा। वास्तव में बनाने और इसे बचाने के लिए निम्न कार्य करें:

लक्ष्य जार में निकालें

ठीक

निर्माण | बिल्ड आर्टवर्क | बिल्ड

.Jar फ़ाइल को निकालने का प्रयास करें

प्रोजेक्टनेम | बाहर | कलाकृतियाँ | ProjectName_jar | ProjectName.jar


9
यह तब विफल हो जाता है जब आपके सम्मिलित जार में कुछ वर्गों को आरएसए के साथ हस्ताक्षरित किया जाता है।
आसिफ शहजाद

1
@AsifShahzad हस्ताक्षरित निर्भरताओं के साथ जार फ़ाइलों के निर्माण के लिए यह उत्तर देखें: stackoverflow.com/questions/41746177/…

5
यह विधि अभी भी विफल है, जार फ़ाइल निष्पादित नहीं करता है
samuel owino

6
ऐसा लगता है कि किसी ने इसे काम नहीं करने के लिए वास्तव में बहुत मेहनत की है। यह ऐसी शर्म की बात है जो कभी काम नहीं करती है। मैंने कम से कम 50 अलग-अलग उत्तरों की कोशिश की है और इसमें से कोई भी काम नहीं किया है। और हर बार एक ही कहानी। अब मैं इसे जार के रूप में आउटपुट करने के लिए एक सप्ताह आरक्षित करता हूं क्योंकि हमारी कंपनी में हर कोई इसके वास्तविक प्रयास के बारे में सोचता है जिसे आउटपुट जार के उत्पादन में जाने की आवश्यकता है।
विस्मय

2
जैसा कि मेरे सामने कई लोगों ने लिखा है, यह एक सरलीकरण है जो कभी-कभी काम करता है। कृपया नीचे @zsolt tolvali का उत्तर देखें। नया प्रोजेक्ट बनाते समय JAR निर्माण प्रक्रिया को DEFAULT ACTIVITY बनाने के लिए IntelliJ के दृष्टिकोण से अच्छा होगा, क्योंकि बहुत कम लोगों को इसकी आवश्यकता नहीं है!
एतामार लारोन

255

यह अभी भी 2017 में एक मुद्दा है, मुझे उम्मीद है कि यह किसी को वहां से बाहर निकालने में मदद करेगा! मैं 2 संभावनाओं पाया इंटेलीजे 2017.2 के तहत काम कर जार-s बनाने के लिए

1. इंटेलीज से कलाकृति बनाना:

  • प्रोजेक्ट संरचना पर जाएं:

फ़ाइल मेनू

  • एक नई कलाकृति बनाएँ:

एक नई कलाकृति बनाएँ

  • मुख्य वर्ग का चयन करें, और प्रकट फ़ोल्डर को बदलना सुनिश्चित करें:

यहाँ छवि विवरण दर्ज करें

आपको प्रकट निर्देशिका बदलनी होगी:

<project folder>\src\main\java 

"संसाधन" के साथ "जावा" की जगह

<project folder>\src\main\resources

यह यह की तरह दिखना चाहिए कैसे:

नई उपस्थिति के लिए सही तरीका

  • फिर आप उन निर्भरताओं का चयन करते हैं जिन्हें आप अपने जार में पैक करना चाहते हैं, या अपनी जार फ़ाइल को NEAR करें

  • अपनी कलाकृतियों को बनाने के लिए कलाकृतियों का निर्माण करें और "पुनर्निर्माण" चुनें। यह आपकी जार फ़ाइल और उसकी निर्भरता के साथ एक "आउट" फ़ोल्डर बनाएगा।

यहाँ छवि विवरण दर्ज करें

2. maven-विधानसभा-प्लगइन का उपयोग करना

Pom फ़ाइल में बिल्ड सेक्शन जोड़ें

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <finalName>ServiceCreate</finalName>
                    <appendAssemblyId>false</appendAssemblyId>
                    <archive>
                        <manifest>
                            <mainClass>com.svt.optimoo.App</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
  • एक नया रन / डिबग कॉन्फ़िगरेशन बनाएँ:

एक नया रन / डिबग कॉन्फ़िगरेशन बनाएँ:

  • आवेदन चुनें:

एप्लिकेशन चुनें

  • प्रपत्र को भरें
  • अंतिम रूप से निष्पादित होने के बाद "असेंबली: सिंगल" मावेन गोल जोड़ें

यहाँ छवि विवरण दर्ज करें

अंतिम सेटअप

  • इसे बचाओ, फिर दौड़ो

यहाँ छवि विवरण दर्ज करें

यह प्रक्रिया "लक्ष्य" फ़ोल्डर के तहत जार फ़ाइल बनाएगी

जार फ़ाइल स्थान


6
परिवर्तन निर्देशिका src / संसाधनों के लिए महत्वपूर्ण बिंदु है !!! धन्यवाद ~
कल्पना

3
यह मैनिफेस्ट पथ सबसे महत्वपूर्ण है, धन्यवाद @Zsolt Tolvaly
fruqi

2
मैं no main manifest attributeऊपर के उपाय अपना रहा था । किसी ने भी बदलने का उल्लेख नहीं किया है path to manifest। Thnx !!
प्रोमेथियस

1
यह शीर्ष उत्तर होना चाहिए। धन्यवाद!
जियोगोर लैम्प्राकिस

कैसे scala में स्रोत कोड के बारे में? जावा वह नहीं है
जिसका

135

मुझे हाल ही में यह समस्या हुई थी और लगता है कि इन चरणों का पालन करना आसान है यदि कोई पूर्व समाधान या लिंक विस्तार से गायब है।

.jarIntelliJ IDEA 14.1.5 का उपयोग करके कैसे बनाएं :

  1. फ़ाइल> सभी सहेजें।
  2. मुख्य विधि के साथ ड्राइवर या क्लास चलाएं।
  3. फ़ाइल> प्रोजेक्ट संरचना।
  4. टैब "कलाकृतियों" का चयन करें।
  5. विंडो के ऊपर हरे रंग के प्लस बटन पर क्लिक करें।
  6. ऐड ड्रॉप डाउन मेनू से JAR का चयन करें। "निर्भरता वाले मॉड्यूल से" चुनें
  7. मुख्य वर्ग का चयन करें।
  8. रेडियो बटन को "लक्ष्य JAR के अर्क" का चयन करना चाहिए। ओके दबाओ।
  9. बॉक्स "चेक ऑन मेक" बनाएँ
  10. प्रेस लागू करें और ठीक है।
  11. मुख्य मेनू से, बिल्ड ड्रॉपडाउन का चयन करें।
  12. कलाकृतियों के विकल्प का चयन करें।

1
क्या आपको कुछ याद आया? मॉड्यूल के बारे में एक विकल्प है कि क्या होना चाहिए। मेरे मामले में यह सुरक्षा के कारण त्रुटि के माध्यम से JAR लेकिन JVM का निर्माण कर रहा है।
sonus21

मुझे लगता है कि सूची सब कुछ है। आपके पास अपनी जावा सेटिंग्स के साथ सुरक्षा के कारण इसे रोकने के लिए कुछ हो सकता है। क्या इस पर किसी और के विचार हैं?
user5442490

उसी का अनुसरण किया और मेरे पास त्रुटि है: इस जार फ़ाइल को चलाने के दौरान मुख्य वर्ग JavaFundamentals.jar को ढूंढ या लोड नहीं कर सका। यहाँ समझाया: stackoverflow.com/questions/40636790/…
laggerok19

क्या यह 12 कदम की प्रक्रिया हर बार मुझे एक जार का निर्माण करना होगा, या क्या IntelliJ इन कार्यों को याद रखेगा ताकि आप इसे शॉर्टकट का उपयोग कर सकें?
एंडी

31

उन छवियों के लिए जो मुझे लगता है कि लाभ:

File -> Project Structure

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें

यहाँ छवि विवरण दर्ज करें


4
@samuelowino मैं आपको यह कहते हुए सराहता नहीं हूँ। बताएं कि "क्या काम नहीं करता है"।
Crt

1
अरे @Crt मैं सही जार फ़ाइल की जाँच नहीं कर रहा था, जाहिरा तौर पर, Inteliji ने अलग-अलग निर्देशिकाओं, माफी, मेरा बुरा, आपके समाधान काम करता है पर दो जार फाइलें तैयार की, धन्यवाद
samuel owino

15

यहाँ मावेन परियोजना के साथ 2 उदाहरण दिए गए हैं, चरण दर चरण:

विधि 1: मावेन और pom.xml के साथ जार बनाएँ

  1. फ़ाइल, नई, परियोजना, मावेन
  2. एक पैकेज बनाएं, उस पैकेज के अंदर एक जावा प्रोग्राम बनाएं यहाँ छवि विवरण दर्ज करें
  3. pom.xml पर, मावेन-जार-प्लगइन जोड़ें।

        <plugin>
            <!-- Build an executable JAR -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>somePackage.sample</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>

स्क्रीन कैप्चर: यहाँ छवि विवरण दर्ज करें 4. ओपन मावेन प्रोजेक्ट बॉक्स सर्च आइकॉन पर क्लिक करें और मावेन टाइप करें, यहाँ छवि विवरण दर्ज करें

  1. क्लीन पर क्लिक करें, फिर इंस्टॉल पर क्लिक करें यहाँ छवि विवरण दर्ज करें

  2. आपकी जार फ़ाइल लक्ष्य फ़ोल्डर के अंदर दिखाई देगी यहाँ छवि विवरण दर्ज करें

  3. जावा -जेर का उपयोग करके अपने जार का परीक्षण करें

यहाँ छवि विवरण दर्ज करें

विधि 2: pom.xml परिवर्तन के बिना मावेन के साथ जार बनाएँ

  1. फ़ाइल, नई, परियोजना, मावेन
  2. पैकेज बनाएं, उस पैकेज के अंदर एक जावा प्रोग्राम बनाएं (ऊपर जैसा है)
  3. File-> Project Structure-> Project Settings-> Artifacts-> क्लिक green plus sign-> Jar->From modules with dependencies

बहोत महत्वपूर्ण!

MANIFEST.MF को आपके संसाधन फ़ोल्डर में होना चाहिए और Main.Class को {पैकेज} - {वर्ग-नाम-उस-में-मुख्य-वर्ग} को संदर्भित करने की आवश्यकता है।

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

  1. फिर मेनू पर निर्माण, कलाकृतियों का निर्माण, निर्माण पर क्लिक करें

यहाँ छवि विवरण दर्ज करें

  1. बाहर फ़ोल्डर में जार खोजें

यहाँ छवि विवरण दर्ज करें

  1. चलाओ :)

यहाँ छवि विवरण दर्ज करें


यह काम। क्या आप समझा सकते हैं कि MANIFEST.MF को उस निर्देशिका में होने की आवश्यकता क्यों है?
उबोगेश

यह मेरे लिए मदद करता है
देवेंद्र सिंगरौल

5

यह शायद थोड़ी देर हो चुकी है, लेकिन मैं इसे इस तरह से हल करने में कामयाब रहा -> वाइनर के साथ खुला और मेटा-इन फ़ोल्डर में ECLIPSEF.RSA और ECLIPSEF.SF को हटाएं, इसके अलावा "मुख्य-वर्ग: main_class.name" (बिना ".class") डाले। ) MANIFEST.MF में। सुनिश्चित करें कि आपने अंतिम पंक्ति के बाद दो बार "एन्टर" दबाया, अन्यथा यह काम नहीं करेगा।


हस्ताक्षरित निर्भरता के लिए, कृपया इस उत्तर पर एक नज़र डालें: stackoverflow.com/questions/41746177/…

एक पागल मुद्दा क्या है। किसी भी विचार क्यों ऐसा होता है या ठीक करने के लिए कैसे? यह हैकी लगता है
एंड्रयू नो

5

जब मैं इन समाधानों का उपयोग इस त्रुटि को आ रहा हूँ:

java -jar xxxxx.jar

कोई मुख्य अभिव्यक्ति विशेषता, xxxxx.jar में

और समाधान है :

आपको प्रकट निर्देशिका बदलनी होगी:

<project folder>\src\main\java 

संसाधनों में जावा बदलें

<project folder>\src\main\resources

वाह, आखिर में, टिप के लिए धन्यवाद!
रेन्डन

@rendon गुड लक whew!
सईद

उत्तम !। यह ठीक काम करता है
jafarmlp

2

मैं एक मल्टी-मॉड्यूल कोटलिन ऐप से जार बनाने की कोशिश कर रहा था और कुख्यात 'कोई मुख्य अभिव्यक्ति विशेषता' त्रुटि प्राप्त कर रहा था। में निर्देशिका निर्देशिका बनानाsrc/main/resources या तो काम नहीं करता।

इसके बजाय, यह srcसीधे में बनाते समय काम करता है src/META-INF/MANIFEST.MF:।

यहाँ छवि विवरण दर्ज करें


नमस्ते, धन्यवाद यह ठीक काम कर रहा है। लेकिन अब मेरे पास एक नई त्रुटि है कि यह संसाधन "java.desktop / javax.swing.ImageIcon java.lang.NullPointerException" नहीं ढूंढ रहा है
शिवम माथुर

2

यहाँ छवि विवरण दर्ज करें

जैसा कि ऊपर के लोग कहते हैं, लेकिन मुझे एक बिंदु पर ध्यान देना होगा। आपको चेकबॉक्स चेक करना होगा:

प्रोजेक्ट बिल्ड में शामिल करें


1

आइडिया 8.1.3

जार ठीक है, क्योंकि 'आउटपुट' डायरेक्टरी (प्रोजेक्ट / आउट / प्रोडक्शन //) में संकलित आउटपुट है।

मुझे लगता है, आपको जार बनाने से पहले 'मेक' चलाना होगा

निर्भरता के लिए बस "शो लाइब्रेरी" की जांच करें और चुनें कि आपको क्या चाहिए।


1

मावेन के साथ आप इस प्लगइन का उपयोग कर सकते हैं:

 <build>
    <plugins>

        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>[path you class main]</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase> 
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

0

आप मावेन ( http://maven.apache.org) पर एक नज़र डालना चाह सकते हैं ) । आप इसे या तो अपने आवेदन के लिए मुख्य निर्माण प्रक्रिया के रूप में उपयोग कर सकते हैं, या केवल संपादन कॉन्फ़िगरेशन संवाद के माध्यम से कुछ कार्य कर सकते हैं। मावेन के भीतर एक मॉड्यूल के जार को बनाने की प्रक्रिया काफी तुच्छ है, यदि आप चाहते हैं कि यह सभी निर्भरता को एक स्व-निष्पादन योग्य जार में शामिल करे जो कि तुच्छ हो।

यदि आपने पहले कभी मावेन का उपयोग नहीं किया है तो आप मावेन के साथ बेहतर बिल्ड पढ़ना चाहते हैं ।


8
जार बनाने जैसे सरल कार्य के लिए मावेन स्पष्ट रूप से ओवरहेड है। शायद चींटी लेकिन यकीन के लिए मावेन नहीं।
जूरि

लिंक मृत है (अक्टूबर 2014)
कैथी।

1
@KathyA। धन्यवाद - मावेन टीम की सिफारिशों का उपयोग करने के लिए अपडेट किया गया।
गैरी रोवे

5
यदि यह बहुत तुच्छ है, तो इसे अपने उत्तर में शामिल क्यों न करें?
नाज़ोलिलो

1
क्योंकि मैं चाहता हूं कि पाठक साइट पर जाएं और सीखने की प्रक्रिया शुरू करें।
गैरी रोवे

0

यदि आप अपने प्रोजेक्ट के साथ थर्ड पार्टी लाइब्रेरी का उपयोग कर रहे हैं या यदि आपको MANIFEST.MF फाइल को ठीक से बनाने में समस्या है, तो JAR फ़ाइलों का उपयोग करते समय उत्पन्न होने वाले संघर्ष हो सकते हैं

File > Project Structure > Artifacts > '+' > JAR > From modules with dependencies > .....

ऊपर बताई गई विधि।

इसके बजाय मैं आपको एक खाली JAR बनाने और अन्य सभी तत्वों को आउटपुट रूट में मैन्युअल रूप से जोड़ने का सुझाव देता हूं। इस विधि के लिए एक अद्भुत ब्लॉग लेख यहां पाया जा सकता है: http://karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/ मैंने वहां बताए गए चरणों की कोशिश की और सब कुछ ठीक काम किया मेरे लिए!


धन्यवाद, इससे मुझे मदद मिली! Intellij में एक बग दिखाई देता है जहाँ JAR को प्रोजेक्ट के रूप में डिफ़ॉल्ट रूप से ओवरराइट कर दिया जाता है यदि आप "JAR" को "अन्य" के बजाय विरूपण साक्ष्य प्रकार के रूप में चुनते हैं।
लाल

0

अन्य जवाबों में से कुछ बेकार हैं क्योंकि जैसे ही आप मावेन परियोजना से इंटेलीजे आईडीईए प्रोजेक्ट को फिर से आयात करेंगे, सभी परिवर्तन खो जाएंगे।

जार की इमारत को एक रन / डिबग कॉन्फ़िगरेशन द्वारा ट्रिगर किया जाना चाहिए, न कि प्रोजेक्ट सेटिंग्स द्वारा।

Jetbrains का एक अच्छा वर्णन है कि आप इसे यहाँ कैसे पूरा कर सकते हैं:

https://www.jetbrains.com/help/idea/maven.html

"मावेन लक्ष्यों के लिए ट्रिगर्स कॉन्फ़िगर करना" नामक अनुभाग तक नीचे स्क्रॉल करें।

(उनके विवरण का एकमात्र नुकसान यह है कि उनके स्क्रीनशॉट सुपर-भयानक डार्कुला थीम के बजाय डिफ़ॉल्ट ब्लैक-ऑन-व्हाइट रंग योजना में हैं। ऊग!)

तो, मूल रूप से, आप क्या करते हैं कि आप "मावेन प्रोजेक्ट्स" पैनल खोलते हैं, आप ब्याज की परियोजना पाते हैं, (आपके मामले में, जो परियोजना आपके जार का निर्माण करती है,) इसके नीचे आपको उस मावेन लक्ष्य का पता चलता है जिसे आप निष्पादित करना चाहते हैं। , (आमतौर पर "पैकेज" लक्ष्य जार बनाता है), आप उस पर संदर्भ मेनू खोलते हैं, (विंडोज मशीन पर राइट-क्लिक करें) और "रन / डीबग से पहले एक्सक्यूट्यूट ..." विकल्प होगा जो आप कर सकते हैं चयन करें और यह आपको वहां से हाथ से ले जाएगा। वास्तव में आसान।


0

यदि आप कोटलिन के साथ एक जार बनाने की कोशिश कर रहे हैं, तो आपको एक src/main/javaफ़ोल्डर बनाने और मेटा-इन फ़ोल्डर के लिए एक स्थान के रूप में इस फ़ोल्डर का उपयोग करने की आवश्यकता है ।


0

यहां IntelliJ IDEA 2018.3 हेल्प का आधिकारिक उत्तर दिया गया है । मैंने कोशिश की और यह काम कर गया।

एक मॉड्यूल से एक जार फ़ाइल बनाने के लिए;

  1. मुख्य मेनू पर, बिल्ड चुनें | कलाकृति का निर्माण।

  2. ड्रॉप-डाउन सूची से, JAR प्रकार की वांछित कलाकृतियों का चयन करें। सूची वर्तमान परियोजना के लिए कॉन्फ़िगर की गई सभी कलाकृतियों को दिखाती है। सभी कॉन्फ़िगर की गई कलाकृतियों का निर्माण करने के लिए, सभी कलाकृतियों का निर्माण करें विकल्प चुनें।


0

मेरी समस्या यह थी: मैंने Intellij IDEA (विभिन्न संस्करणों की कोशिश की) + ग्रेड का उपयोग किया। जब मैंने प्रोजेक्ट संकलित किया और आर्टिफ़ैक्फ़ जार का निर्माण किया, जैसा कि उपरोक्त प्रतिक्रियाओं में संकेत दिया गया है, तो मुझे एक त्रुटि मिली - "कोई मुख्य अभिव्यक्ति नहीं है ..."

इस समाधान ने मेरे लिए काम किया (टिप के लिए थिलिना एशेन गैमेज (ऊपर देखें) के लिए विशेष धन्यवाद):

अंश - यदि आप बाहरी पुस्तकालयों का उपयोग करते हैं और परियोजना सेटिंग्स के माध्यम से एक परियोजना का निर्माण करते हैं - कलाकृतियों - जोड़ें (+) - जार - निर्भरता वाले मॉड्यूल से , तो शायद प्रोग्राम के कारण मेटा- INF फ़ोल्डर MANIFEST_MF फ़ाइल के साथ जार सहित। इससे बचने के लिए EMPTY जार फाइल बनाएं ।

परियोजना सेटिंग्स - कलाकृतियों - जोड़ें (+) - जार - एम्प्टी जार । META-INF फ़ोल्डर संसाधन फ़ोल्डर में जोड़ा जाएगा । फिर अपने मुख्य वर्ग का चयन करें। आपको जार संरचना निम्नलिखित दिखाई देगी: एक फ़ोल्डर META-INF की उपस्थिति पर ध्यान दें एक फ़ोल्डर की उपस्थिति को नोट करें META-INF तब आप अपनी परियोजना का निर्माण कर सकते हैं और कलाकृतियों का निर्माण कर सकते हैं। यह समाधान javaFX अनुप्रयोगों के लिए भी काम करता है।


-1

यदि आप वसंत / मावन परियोजना पर काम कर रहे हैं तो आप इस कमांड का उपयोग कर सकते हैं:

mvn package -DskipTests

जार फ़ाइल लक्ष्य निर्देशन पर सहेजी जाएगी।


-3

चींटी और मावेन का व्यापक रूप से उपयोग किया जाता है। मुझे चींटी पसंद है, मुझे लगता है कि यह अधिक हल्का है और आप डेवलपर नियंत्रण में हैं। कुछ सुझाव है कि इसके नकारात्मक है :-)


3
यह बताने के लिए कुछ भी नहीं है कि त्रुटि क्यों हो रही है।
बोरडॉग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.