दिलचस्प पोस्ट
पहचान स्तंभों को सम्मिलित करने के लिए मैं संस्था ढांचा कैसे लागू करूं? जीआईटी ने एक लापता-एम विकल्प के बारे में शिकायत क्यों की है? मुख्य () में कॉलिंग मुख्य () में सी में PHP / PDO का उपयोग करते हुए MySQL से कनेक्ट करते समय त्रुटि एपीएनएस फीडबैक सर्वर को क्वेरी करने के लिए PHP तकनीक सशर्त अभिव्यक्ति के साथ कोणीय एनजी-शैली क्या हमें इंटरफ़ेस की विधि कार्यान्वयन को बदलना चाहिए? मैं अपने एज़्यूर फ़ंक्शंस में कैसे NuGet पैकेज का उपयोग कर सकता हूं? एक ऑपरेटिंग सिस्टम विकसित करने के लिए संसाधन घुंघराले ब्रेसिज़ को छोड़ने के लिए इसे खराब अभ्यास क्यों माना जाता है? थ्रेडिंग के साथ पायथन कोड निष्पादन घटता है जावा एक स्ट्रिंग में एक बार में (या सबसे प्रभावी तरीके से) में एक से अधिक भिन्न ऑब्जेक्ट को बदलता है Android स्वचालित क्षैतिज स्क्रॉलिंग टेक्स्टव्यू चेनिंग .bind () जावास्क्रिप्ट में कॉल अप्रत्याशित परिणाम? इंटेल सीपीयू पर सिम उपसर्ग योग

क्या मैं जावा फ़ाइल को कक्षा से अलग नाम के साथ संकलित कर सकता हूं?

जावा प्रोग्राम नाम के आधार वर्ग नाम के बिना जावा प्रोग्राम को संकलित करने का कोई तरीका क्या है?

यदि हां, तो कृपया समझाएं ..

Solutions Collecting From Web of "क्या मैं जावा फ़ाइल को कक्षा से अलग नाम के साथ संकलित कर सकता हूं?"

आपका जावा फ़ाइल नाम हमेशा उस फाइल में परिभाषित सार्वजनिक वर्ग को प्रतिबिंबित करना चाहिए। अन्यथा, आपको एक कंपाइलर त्रुटि मिलेगी। उदाहरण के लिए, test.java:

public class Foo {} 

इसे संकलित करने की कोशिश करता है:

 [steven@scstop:~]% javac test.java test.java:1: class Foo is public, should be declared in a file named Foo.java public class Foo { ^ 1 error 

तो आपके पास अपना फ़ाइल नाम आपके सार्वजनिक वर्ग के नाम से मेल खाना चाहिए, जो आपके प्रश्न का मुनाफ़ा प्रतीत होता है या तो मैं या नहीं समझता कि आप क्या पूछ रहे हैं … कुछ समय बिताते हुए बताते हुए कि आप वास्तव में क्या हासिल करने की कोशिश कर रहे हैं, एक अधिक प्रभावी प्रश्न पूछने की दिशा में एक लंबा रास्ता तय होगा 🙂

प्रश्न का उत्तर देने के लिए इस उदाहरण पर एक नज़र डालें:
एक नमूना फ़ाइल बनाएँ

 class A { public static void main(String args[]) { String str[] = {""}; System.out.println("hi"); B.main(str); } } class B { public static void main(String args[]) { System.out.println("hello"); } } 

अब आप इसे javac Sample.java रूप में संकलित करते हैं और java A रूप में चलाते हैं तो आउटपुट होगा

 hi hello 

या आप java B रूप में चलाते हैं तो आउटपुट होंगे
hello

ध्यान दें कि कक्षाओं में से कोई भी public रूप से चिह्नित public इसलिए उन्हें default पहुंच प्रदान करता है। किसी भी सार्वजनिक वर्ग के बिना फ़ाइलें कोई फ़ाइल नामकरण प्रतिबंध नहीं है।

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

उदाहरण:
फ़ाइल नाम: TestFileName.java

 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello,World\n"); } } 

संकलन: javac TestFileName.java

त्रुटि:

 TestFileName.java:1: class HelloWorld is public, should be declared in a file named HelloWorld.java public class HelloWorld ^ 1 error 

नहीं, सार्वजनिक वर्ग का नाम फ़ाइल नाम से मेल खाना चाहिए। आंतरिक, गैर-सार्वजनिक, वर्ग के नाम भिन्न हो सकते हैं

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

यह अधिकांश भाग के लिए नहीं किया जाना चाहिए। वर्गों और संकुलों के बारे में जावा के नामकरण पद्धतियां इसके बड़े लाभों में से एक हैं – कोई भी कीमत पर प्रोग्रामर की ज़िंदगी आसान नहीं बनाता है

हाँ, हम एक जावा फ़ाइल को कक्षा से अलग नाम के साथ संकलित करते हैं, बशर्ते उस फ़ाइल में कोई सार्वजनिक वर्ग नहीं होना चाहिए।

अगर फाइल में कोई सार्वजनिक वर्ग है तो उस मामले में आपको उस नाम को फ़ाइल नाम देना होगा। लेकिन अगर आपकी कक्षा में कोई सार्वजनिक वर्ग शामिल नहीं है तो आप कक्षा को कोई नाम दे सकते हैं।

कृपया इसे और अधिक स्पष्ट करने के लिए उदाहरण देखें:

फ़ाइल का नाम: sample.java

  class A { public static void main(String args[]) { System.out.println("hi in Class A"); } } class B { public static void main(String args[]) { System.out.println("hello in class B"); } } 

फिर इसे (विंडोज़) के साथ संकलित करें: javac sample.java

तो इसे चलाएं: जावा ए

आउटपुट: क्लास ए में हाय

तो इसे चलाएं: जावा बी

आउटपुट: क्लास बी में हैलो

कृपया जाँच करें और पुष्टि करें।

आप जावा कंपाइल एपीआई का उपयोग कर सकते हैं और जो जावा स्रोत चाहते हैं, उसे संकलित कर सकते हैं, स्रोत को किसी फ़ाइल से नहीं आना चाहिए या फ़ाइल से किसी असंबंधित नाम से आ सकता है। यह इस बात पर निर्भर करता है कि आप कैसे अपने कार्यक्रम को विकसित करना चाहते हैं। 😉

मुझे लगता है कि उनका क्या अर्थ है। जावा फ़ाइल को इसके अंदर की गई वास्तविक कक्षा से भिन्न रूप से नाम दिया गया है।

मुझे लगता है कि यह संभव नहीं है

नहीं। आप इसे जमा करने से पहले .java फाइल का नाम बदलने के लिए एक खोल स्क्रिप्ट लिख सकते हैं, लेकिन जावाक के लिए फ़ाइल नाम = वर्ग नाम की आवश्यकता है।

(खिड़कियों में भी, यह मामला असंवेदनशील है, इसलिए एएसडीएफ.जावा एएसडीएफ क्लास को संकलित कर सकता है)

हाँ, आप फ़ाइल के लिए कोई भी नाम चुन सकते हैं (.java)। उस फ़ाइल में कक्षाओं का नाम क्या है इसका कोई फर्क नहीं पड़ता कि इसका मतलब है कि वर्ग नाम फ़ाइल नाम से कुल भिन्न हो सकते हैं। आपको प्रोग्राम नाम को फ़ाइल नाम से संकलित करना चाहिए और आपको प्रोग्राम को उस क्लास नेम के साथ चलाना चाहिए जिसमें मुख्य विधि मौजूद है मुख्य विधियां अलग-अलग वर्गों में बहुत अधिक हो सकती हैं, इसलिए आपको उस वर्ग के नाम के साथ चलाना चाहिए जिसमें मुख्य विधि आप चलाना चाहते हैं ……

हम फाइल को अलग-अलग नाम के लिए टूटल को अलग कर सकते हैं क्योंकि जावा में हम प्रोग्राम को संकलित करते हैं लेकिन हम विधि को चलाते हैं। हमें अपने प्रोग्राम को फाइल नाम के साथ संकलित करना होगा और हमारे क्लास का नाम चलाया जाएगा

हां, अलग फ़ाइल नाम के साथ एक जावा स्रोत फ़ाइल संकलित करना संभव है, लेकिन आपको यह सुनिश्चित करने की आवश्यकता है कि अंदर परिभाषित कक्षाओं में से कोई भी सार्वजनिक नहीं है … जब आप सोर्स फ़ाइल संकलित करते हैं तो संबंधित फ़ाइल वर्ग के भीतर श्रेणी के लिए वर्ग फ़ाइलें बनाया है।

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

यदि वर्ग सार्वजनिक नहीं है तो आप इसे अन्य नामों का उपयोग कर सहेज सकते हैं जैसे कि क्लासनाम सरल है, तो इसे सहेजें hard.java complie-> hard.java run-> simple.java केवल जावा के द्वारा अपनी जावा फ़ाइल सहेजें। javac को संकलित करें। जावा चलाना java yourclassname उदाहरण के लिए यदि मेरे प्रोग्राम का मुख्य वर्ग का नाम A है तो केवल .java से बचा
javac .java द्वारा संकलित करें
जावा ए द्वारा संचालित

हां, हम एक जावा फ़ाइल को कक्षा से अलग नाम के साथ संकलित कर सकते हैं, बशर्ते कि उस फ़ाइल में कोई सार्वजनिक वर्ग नहीं होना चाहिए।

अगर फाइल में कोई सार्वजनिक वर्ग है तो उस मामले में आपको उस नाम को फ़ाइल नाम देना होगा। लेकिन अगर आपकी कक्षा में कोई सार्वजनिक वर्ग शामिल नहीं है तो आप कक्षा को कोई नाम दे सकते हैं।

कृपया इसे और अधिक स्पष्ट करने के लिए उदाहरण देखें:

फ़ाइल नाम: example.java

 class A { public static void main(String args[]) { System.out.println("You are in Class A"); } } class B { public static void main(String args[]) { System.out.println("You are in class B"); } } 

इसके साथ इसे संकलित करें: javac example.java

तो इसे चलाएं: java A

 output : you are in Class A 

तो इसे चलाएं: java B

 output : you are in class B 

कृपया जाँच करें और पुष्टि करें।

आप जावा में एक से अधिक मुख्य विधियों को लिख सकते हैं क्योंकि जावा मुख्य विधि ओवरलोडिंग प्रदान करता है जिसमें मुख्य विधि भी ओवरलोड हो सकती है। एक बार जब आप फ़ाइल को यहां संकलित करते हैं तो example.java कंपाइलर बनाओ। क्लास फ़ाइल जिसमें मुख्य विधि शामिल होती है जब आप जावा ए के साथ फ़ाइल चलाते हैं तो यह A.class फ़ाइल को चलाएगा जिसमें ए क्लास ए की मुख्य विधि है और वह आउटपुट आपको प्रदर्शित होगा स्क्रीन पर, जब आप इस फ़ाइल को जावा बी के साथ चलाते हैं, तो यह बी क्लास फ़ाइल चलाती है जो बी क्लास की मुख्य विधि प्रदान करती है, तो आपका कोड सफलतापूर्वक चलाया जाता है

अन्य उत्तरों के मुताबिक एकमात्र व्यवहार्य हल स्रोत से क्लासनाम को निर्धारित करने के लिए है , फिर फाइल का नाम उचित नाम से बदलने के लिए उपयोग करें और इसे सामान्य रूप से संकलित करें।

हाँ। यह संभव है।

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

तो यह एक अच्छा अभ्यास है जैसा कि फ़ाइल नाम और कक्षा नाम समान है।

और आप फ़ाइल नाम के अलावा अन्य नाम के साथ एक वर्ग को संकलित और चलाते हैं, यदि आपके पास इस वर्ग में कोई सार्वजनिक पद्धति नहीं है।