Вопрос-ответ

Including jars in classpath on commandline (javac or apt)

Включение jars в classpath в командной строке (javac или apt)

пытаюсь запустить эту программу. Я думаю, что для настройки всего веб-сервиса мне нужно запустить apt. (Хотя при использовании javac у меня такая же проблема). Я думаю, что я получаю ошибки компиляции. (Показано внизу).

Я думаю, что мне нужно включить этот jar в мой путь к классу: jsr181-api.jar (исходный код). Есть ли простой временный способ сделать это (в solaris)? Я не хочу добавлять это в свой файл bash_rc (он там навсегда). Я также знаю, что есть какой-то способ сделать это с помощью текстового файла манифеста, но это показалось сложным, поэтому я пока не рассматривал его. Могу ли я просто сделать что-то вроде:

javac HelloImp <listOfJars>

или

ant HelloImp <listOfJars>

Код:

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

Ошибки компиляции:

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

Обновление: это круто, но все еще не совсем работает. Я создал новый вопрос , чтобы все было красиво и организованно:

Переведено автоматически
Ответ 1

Попробуйте следующее:

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

Использование в Windows ;

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

Путь к классу по умолчанию (если нет переменной окружения CLASSPATH) является текущим каталогом, поэтому, если вы переопределите его, убедитесь, что вы добавляете текущий каталог (.) в classpath, как я сделал.

Ответ 2

В Windows:

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

убедитесь, что класс с функцией main находится в одном из включенных jars

Ответ 3

Примечание для пользователей Windows, jar должны быть разделены ;, а не :.

например: javac -cp external_libs\lib1.jar;other\lib2.jar;

Ответ 4

Используйте переключатель -cp или -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.

(Обратите внимание, что разделитель, используемый для разделения записей в classpath, отличается в разных операционных системах, на моем компьютере с Windows это ;, в * nix это обычно :.)

java jar