2010-01-19 9 views
116

cercando di eseguire questo programma. Penso che per impostare tutte le cose del servizio web ho bisogno di eseguire apt. (Sebbene utilizzi javac, ho lo stesso problema). Penso che quello che sto ottenendo sia errori di compilazione. (Mostrato in basso).Includere i jar in classpath su riga di comando (javac o apt)

Penso che quello che devo fare è includere questo jar nel mio percorso di classe: jsr181-api.jar (source). C'è un modo temporaneo semplice per fare questo (su solaris)? Non voglio aggiungerlo al mio file bash_rc (è lì per sempre). So anche che c'è un modo per farlo usando un file di testo manifest, ma mi sembra complicato, quindi non l'ho ancora esaminato. Posso fare qualcosa di simile:

javac HelloImp <listOfJars> 

o

ant HelloImp <listOfJars> 

Codice:

package server; 

import javax.jws.WebService; 

@WebService 
public class HelloImpl { 

    /** 
    * @param name 
    * @return Say hello to the person. 
    */ 
    public String sayHello(String name) { 
    return "Hello, " + name + "!"; 
    } 
} 

errori di compilazione:

HelloImpl.java:3: package javax.jws does not exist 
import javax.jws.WebService; 
       ^
HelloImpl.java:5: cannot find symbol 
symbol: class WebService 
@WebService 
^ 
2 errors 

Aggiornamento: Raffreddare che è stato completato ma non funziona ancora correttamente. Ho creato un new question per mantenere le cose bello e organizzato:

risposta

132

provare quanto segue:

java -cp jar1:jar2:jar3:dir1:. HelloWorld 

Il percorso di classe di default (a meno che non v'è una variabile di ambiente CLASSPATH) è la directory corrente, quindi se si ridefinisce, farne certo che stai aggiungendo la directory corrente (.) al classpath come ho fatto io.

+0

https://github.com/SpotterRF/json-examples/tree/master/java/jackson è un buon esempio nel Makefile – CoolAJ86

+0

@ CoolAJ86 Il legame sembra essere andato morti –

+1

Aggiornato: https://github.com/coolaj86/json-examples/tree/master/java/jackson – CoolAJ86

9

Utilizzare lo switch -cp o -classpath.

$ java -help 
Usage: java [-options] class [args...] 
      (to execute a class) 
    or java [-options] -jar jarfile [args...] 
      (to execute a jar file) 

where options include: 
... 
    -cp <class search path of directories and zip/jar files> 
    -classpath <class search path of directories and zip/jar files> 
        A ; separated list of directories, JAR archives, 
        and ZIP archives to search for class files. 

(Si noti che il separatore utilizzato per separare le voci nel classpath è diversa tra sistemi operativi, sulla mia macchina Windows è ;, in * nix di solito è :.)

3

Usando:

apt HelloImpl.java -classpath /sac/tools/thirdparty/jaxws-ri/jaxws-ri-2.1.4/lib/jsr181-api.jar:. 

opere ma mi dà un altro errore, vedere new question

28

in Windows:

java -cp C:/.../jardir1/*;C:/.../jardir2/* class_with_main_method 

assicurarsi che la classe con la funzione principale è in uno dei vasi inclusi

1

javac -classpath HelloWorld.java ./javax.jar, assumendo javax è in cartella corrente, e compilare bersaglio è "HelloWorld.java", e si può compilare senza un metodo main

0

Nota per gli utenti Windows, i vasi devono essere separati da ; e non :.

ad esempio: javac -cp external_libs\lib1.jar;other\lib2.jar;

Problemi correlati