Incluir archivos jar en classpath en la línea de comandos (javac o apt)

Resuelto sixtyfootersdude asked hace 14 años • 5 respuestas

intentando ejecutar este programa. Creo que para configurar todos los servicios web necesito ejecutar apt. (Aunque uso javac, tengo el mismo problema). Creo que lo que obtengo son errores de compilación. (Se muestra en la parte inferior).

Creo que lo que debo hacer es incluir este archivo jar en mi ruta de clase: jsr181-api.jar (fuente) . ¿Existe una forma temporal sencilla de hacer esto (en Solaris)? No quiero agregarlo a mi archivo bash_rc (está ahí para siempre). También sé que hay alguna manera de hacerlo usando un archivo de texto de manifiesto, pero parecía complicado, así que no lo investigué todavía. ¿Puedo hacer algo como:

javac HelloImp <listOfJars>

o

ant HelloImp <listOfJars>

Código:

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 + "!";
   }
}

Errores de compilación:

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

Actualización: Genial, ya está terminado, pero aún no funciona del todo. He creado una nueva pregunta para mantener las cosas agradables y organizadas:

sixtyfootersdude avatar Jan 20 '10 02:01 sixtyfootersdude
Aceptado

Pruebe lo siguiente:

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

En uso de Windows;

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

La ruta de clases predeterminada (a menos que haya una variable de entorno CLASSPATH) es el directorio actual, por lo que si lo redefine, asegúrese de agregar el directorio actual (.) a la ruta de clases como lo hice yo.

Kevin avatar Jan 19 '2010 19:01 Kevin

En ventanas:

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

asegúrese de que la clase con la función principal esté en uno de los frascos incluidos

Ben avatar Jan 19 '2010 19:01 Ben

Nota para los usuarios de Windows, los archivos jar deben estar separados por ;y no por :.

Por ejemplo: javac -cp external_libs\lib1.jar;other\lib2.jar;

luisv avatar Apr 27 '2017 19:04 luisv

Utilice el interruptor -cpo -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.  

(Tenga en cuenta que el separador utilizado para separar las entradas en el classpath difiere entre sistemas operativos; en mi máquina con Windows es ;, en *nix generalmente es :.)

matt b avatar Jan 19 '2010 19:01 matt b

javac HelloWorld.java -classpath ./javax.jar, asumiendo que javax está en la carpeta actual y que el destino de compilación es "HelloWorld.java", y puedes compilar sin un método principal

Stoica Mircea avatar Jan 15 '2017 11:01 Stoica Mircea