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


Intentando ejecutar este programa. Creo que para configurar todas las cosas del servicio web necesito ejecutar apt. (Aunque usando javac estoy teniendo el mismo problema). Creo que lo que estoy obteniendo son errores de compilación. (Se muestra en la parte inferior).

Creo que lo que tengo que hacer es incluir este jar en mi ruta de clase: jsr181-api.jar (fuente). ¿Hay una manera simple y temporal de hacer esto (en solaris)? No quiero agregarlo a mi archivo bash_rc (está ahí para siempre). También sé que hay alguna manera para hacerlo usando un archivo de texto manifiesto, pero eso 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 + "!";
   }
}

Compile errores:

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 que está envuelto, pero todavía no está funcionando del todo. He creado una nueva pregunta para mantener las cosas bien organizadas:

 121
Author: Community, 2010-01-19

6 answers

Intente lo siguiente:

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

El classpath predeterminado (a menos que haya una variable de entorno CLASSPATH) es el directorio actual, así que si lo redefine, asegúrese de agregar el directorio actual (.) al classpath como lo he hecho.

 143
Author: Kevin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-01-19 19:14:08

En windows:

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

 30
Author: Ben,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-01-19 19:17:24

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 los sistemas operativos, en mi máquina Windows es ;, en *nix suele ser :.)

 9
Author: matt b,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-01-19 19:15:13

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

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

 8
Author: user2317013,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-27 19:34:22

Usando:

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

Funciona pero me da otro error, ver nueva pregunta

 3
Author: sixtyfootersdude,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:33

Javac HelloWorld.java-classpath .- javax.jar, suponiendo que javax está en la carpeta actual, y el objetivo de compilación es " HelloWorld.java", y se puede compilar sin un método principal

 2
Author: Stoica Mircea,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-15 11:05:54