2010-01-20 12 views
8

मैंने कुछ .jar फाइलें बनाई हैं (एक्लिप्स की निर्यात सुविधा का उपयोग करके), लेकिन वे सभी जीयूआई थे। मैं एक .jar फ़ाइल बनाना चाहता हूं जो कड़ाई से कमांड लाइन है; क्या यह संभव है?जावा कमांड लाइन जार फ़ाइल

+1

निश्चित रूप से। बस इसे कमांड लाइन से चलाएं। – jdigital

+0

मुझे क्या समझ रहा है: आप .jar फ़ाइल पर डबल क्लिक करना चाहते हैं और एक कंसोल खोलना चाहते हैं और वहां से बातचीत कर सकते हैं। क्या ये सही है? – OscarRyz

उत्तर

4

हाँ जावा में एक कंसोल प्रोग्राम बनाना संभव है। ग्रहण में भी एक रनने योग्य जार फ़ाइल निर्यात है।

मैं सिर्फ एक डमी अनुप्रयोग है कि कमांड लाइन पर दिए गए तर्कों के बाहर प्रिंट बनाया है, तो एक जार के रूप में यह निर्यात और java -jar test.jar foo bar का उपयोग कर इसे शुरू किया

package com.stackoverflow; 

public class Test 
{ 
    public static void main(String[] args) 
    { 
    for (int i = 0; i < args.length; ++i) 
     System.out.println(args[i]); 
    } 
} 

फिर सही ग्रहण में Test.java फ़ाइल क्लिक करें और का उपयोग "निर्यात ..." मेनू और "Runnable JAR फ़ाइल" का चयन करें और C:\test.jar

को उदाहरण के लिए इसे निर्यात फिर एक कमांड प्रॉम्प्ट खोलें और टाइप java -jar C:\test.jar foo bar जो बाहर प्रिंट

foo
बार

8

एक "जीयूआई जार" या एक "कमांड लाइन जार" जैसी कोई चीज नहीं है। यदि आप कमांड लाइन पर प्रोग्राम करना चाहते हैं, तो आप स्विंग या एडब्ल्यूटी का उपयोग करने के बजाय System.in और System.out या फ़ाइलों से पढ़ और लिखते हैं।

यदि दूसरी ओर आप कमांड लाइन पर एक जार बनाने के लिए कह रहे हैं, तो आदेश बहुत आश्चर्यजनक रूप से "जार" नहीं है। jar cf foo.jar com/my/foo/*.class

+1

मैं इस दूसरे उपयोग के मामले के लिए googling था, और हालांकि मुझे शक है कि यह ओपी की मदद की, यह निश्चित रूप से मेरी मदद की :) – Zlatko

3

हाँ में के रूप में, आप निम्नलिखित कमांड लाइन

java -jar <JARFILE> <CLASSNAME> 

को कुछ इसी तरह के साथ अपने कार्यक्रम चला सकते हैं आप किसी भी अन्य जार आप की जरूरत पर यह इंगित करने के लिए -cp <DIRECTORY> या -classpath <DIRECTORY> निर्दिष्ट करने के लिए हो सकता है।

1

मुझे यकीन नहीं है कि आप क्या पूछ रहे हैं, लेकिन सभी आपके कोड पर निर्भर करते हैं।

यदि आपका जावा कोड जेएफआरएएम और अन्य जीयूआई घटकों का उपयोग करता है तो हाँ, जब आप जार बनाते हैं तो आपके पास एक जीयूआई प्रोग्राम होगा।

यदि आपका जावा कोड किसी भी जीयूआई घटकों का उपयोग किए बिना स्क्रीन पर प्रिंट करता है, तो आपके पास एक कंसोल एप्लिकेशन होगा।

1

चीजों को स्वचालित करने के लिए मैं Ant jar task का उपयोग करने की सलाह दूंगा। एक चींटी buildfile इस तरह दिखता है:

<project default="buildHello"> 
    <target name="compile"> 
    <javac srcdir="." /> 
    </target> 

    <target name="jar" depends="compile"> 
    <jar destfile="hello.jar" 
     basedir="." 
     includes="**/*.class" 
     /> 
    </target> 

    <target name="buildHello" depends="compile,jar" /> 
</project> 

यह बस ant टाइप करके प्रारंभ होगा। ग्रहण में भी चींटी समर्थन है।

> ant jar 
Buildfile: build.xml 

compile: 

jar: 
     [jar] Building jar: /Dev/hello.jar 

BUILD SUCCESSFUL 
Total time: 2 seconds 
संबंधित मुद्दे