2012-08-15 6 views
20

Ho creato un progetto Java per chiamare un servizio Web. Ha un file java principale e un altro file di classe. Ho usato alcuni file jar per client HTTP.
In Eclipse funziona bene. Ho bisogno di eseguire il programma Java nel prompt dei comandi passando alcuni argomenti.
Nel prompt dei comandi sono andato a cartella src contenente java principale e file di classe Java sub e ha dato il seguente comandoCome eseguire il programma Java nel prompt dei comandi

javac mainjava.java  

sto ottenendo seguente errore

mainjava.java:14: cannot find symbol
symbol : class SubClass

qui SubClass è il mio un'altra classe Java file utilizzato per chiamare il servizio web.

Come eseguire il programma passando argomenti?

+0

Dd hai impostato il percorso della tua classe? – Rocky

+0

Grazie a tutti per aiutarmi, sta funzionando bene per me ..... – Vignesh

risposta

20

javac è il compilatore Java. java è la JVM e ciò che si usa per eseguire un programma Java. Non si eseguono file .java, sono solo file di origine. Presumibilmente c'è .jar da qualche parte (o una directory contenente .class file), che è il prodotto di costruirlo in Eclipse:

 
java/src/com/mypackage/Main.java 
java/classes/com/mypackage/Main.class 
java/lib/mypackage.jar 

Da directory java eseguire:

java -cp lib/mypackage.jar Main arg1 arg2

+0

Questa è la mia cartella stucture webcall/src/main.java ---- webcall/src/Sub.java ------ webcall/extjarfiles/httpcore.jar ----- webcall/extjarfiles /httpclient.jar----- – Vignesh

+0

Esiste una cartella 'webcall/classes' o' webclass \ lib'? – hmjd

+0

ho usato javac -cp extjarfiles/AllJarFiles main.java ------ Si è compilato correttamente ma ha ottenuto errori nell'esecuzione del progetto – Vignesh

2

È possibile utilizzare il comando javac *.java per compilare tutte le origini java. Inoltre dovresti imparare un po 'su classpath perché sembra che dovresti impostare un percorso di classe appropriato per la compilazione di successo (perché l'IDE utilizza alcune librerie per creare client WebService). Inoltre posso consigliarti di controllare quale comando usa l'IDE per costruire il tuo progetto.

+0

Nel mio ide utilizzando questo comando per eseguire ***** "C: \ Programmi \ Java \ jre6 \ bin \ javaw.exe" - Dfile.encoding = Cp1252 -classpath "D: \ Projects \ Eclipse Projects \ WebServiceCall \ bin; D: \ Projects \ Eclipse Projects \ WebServiceCall \ ExternalJarFiles \ httpcore-4.0.jar; D: \ Projects \ Eclipse Projects \ WebServiceCall \ ExternalJarFiles \ httpclient-4.0.jar; D: \ Projects \ Eclipse Projects \ WebServiceCall \ ExternalJarFiles \ commons-logging-1.1.jar; D: \ Projects \ Eclipse Projects \ WebServiceCall \ ExternalJarFiles \ gson-1.7.1.jar "WSCall.ServiceCall * *** – Vignesh

+0

Se io uso il comando sopra nel prompt dei comandi in grado di eseguirlo. ma non riesco a passare gli argomenti – Vignesh

+0

Puoi provare ad aggiungere argomenti alla fine del comando. – gkuzmin

14

Un prompt dei comandi molto generale come per Java è

javac mainjava.java 
java mainjava 

È molto vedono spesso persone che fanno

javac *.java 
java mainjava 

Per quanto riguarda il problema sottoclasse che è probabilmente che si verificano a causa di un percorso non è presente il tuo percorso di classe, la bandiera -c credo sia usata per impostarlo.

+0

+1 per 'javac * .java', questo compilerà anche il file sorgente SubClass.java dell'OP. – martijno

1

javac compila solo il codice. È necessario utilizzare il comando java per eseguire il codice. L'errore è dovuto al fatto che il classpath non contiene la classe Sottoclasse quando si è tentato di compilarlo. è necessario aggiungere loro con la variabile -cp al comando javac

java -cp classpath-entries mainjava arg1 arg2 dovrebbe eseguire il codice con 2 argomenti

1

Tutto quello che dovete fare è:

  • Costruire la classe mainjava utilizzando il percorso di classe se qualsiasi (opzionale)

    javac * .java [cp "wb.jar;"]

  • Crea manifesto.file txt con i contenuti è:

    Main-Class: mainjava

  • pacchetto il file jar per la classe mainjava

    vaso CFM mainjava.jar Manifest.txt * .class

Poi è possibile eseguire questo file .jar da cmd con il percorso di classe (opzionale) e inserire argomenti per esso.

java [-cp "wb.jar;"] mainjava arg0 arg1 

HTH.