2010-11-19 18 views
7

से जावा निष्पादित मैं अपने डेस्कटॉप शीर्षक से जो "बकवास" पर एक फ़ोल्डर है और उस फ़ोल्डर में मैं निम्नलिखित है:कमांड लाइन

  • Hello.java
  • mail.jar

और Hello.java mail.jar से आयात करता है, इसलिए मुझे mail.jar की तलाश करने के लिए Hello.java को बताना होगा।

विंडोज कमांड लाइन से और यूनिक्स कमांड लाइन से, मैं इसे कैसे संकलित कर सकता हूं और इसे चला सकता हूं?

उत्तर

14

संकलित:

javac -cp .;mail.jar Hello.java 

जहां ; विंडोज के लिए है, * निक्स के लिए : का उपयोग करें।

और चलाएँ:

java -cp .;mail.jar Hello 

जहां फिर से, विंडोज के लिए ; और : का उपयोग * nix के लिए।

-cp बताता दोनों javac और java क्या classpath उपयोग करने के लिए, और के रूप में अपनी फाइलों को स्थानीय निर्देशिका है जहाँ आप कमांड को क्रियान्वित कर रहे हैं, आप हैलो हिस्सा है और के लिए जार के नाम के लिए उपयोग कर सकते हैं . जार के अंदर पथ। विकिपीडिया में decent article on classpaths है।

यदि आप नियमित आधार पर ऐसा करने जा रहे हैं, तो आप -cp ध्वज का उपयोग करने के बजाय अपने CLASSPATH पर्यावरण चर सेट करना चाह सकते हैं। java और javac दोनों CLASSPATH चर का उपयोग करें।

अपनी खुद की विकास मशीन के लिए, मैं वास्तव में सुविधा के लिए अपने CLASSPATH चर में . शामिल करता हूं। ऐसा कुछ नहीं है जो मैं उत्पादन या निर्माण/परीक्षण बॉक्स पर करता हूं, लेकिन विकास के उद्देश्यों के लिए यह बहुत आसान है। आप इसमें अपने सामान्य जार भी चाहते हैं।

+0

यह जावा को JAR फ़ाइल नहीं उठाएगा। – Jesper

+0

@ जेस्पर: धन्यवाद, मुझे लगता है कि जब आप टिप्पणी करते थे तो मैं ठीक कर रहा था। :-) मैं जार भूल गया था। –

-1

इस ट्यूटोरियल का पालन करें और आप कुछ ही समय में यह करने के लिए सक्षम होना चाहिए:

Java Compilation

तुम भी classpath के साथ किसी भी समस्या नहीं होनी चाहिए क्योंकि अपनी कक्षाओं में एक ही फ़ोल्डर में हैं

+0

-1 वास्तविक जवाब नहीं है। –

2

Hello.java मान लिया जाये कि एक पैकेज घोषणा शामिल नहीं है, विंडोज पर:

javac -cp mail.jar Hello.java 
java -cp mail.jar;. Hello 

यूनिक्स प्लेटफार्मों पर फर्क सिर्फ इतना था है आप अर्धविराम की बजाय स्कोलोन के तत्वों को अलग करते हैं:

java -cp mail.jar:. Hello