Incluir archivos jar en classpath en la línea de comandos (javac o apt)
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:
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.
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
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;
Utilice el interruptor -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.
(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 :
.)
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