Класс не найден при запуске программы из командной строки

Когда я запускаю свою Java-программу из командной строки, она не запускается из-за ClassNotFound ошибка. Но класс, который я вижу, находится в файле jar, который находится на пути к классам. Та же самая программа, когда я запускаю из Eclipse, работает. Не уверен насчет того, чего мне здесь не хватает. Спасибо. Я пытался запустить следующую команду из моего приглашения Windows DOS:C:\softwares\SpringBatchExample4>java -cp "target/dependency-jars/*:target/spring-batch.jar" org.springframework.batch.core.launch.support.CommandLineJobRunner spring/batch/jobs/job-read-files.xml readJob.И я посмотрел в один из jar-файлов в target\dependency-jars, чтобы убедиться, что файл jar имеет класс CommandLineJobRunner.

2 ответа

При запуске файла JAR из командной строки у вас есть две опции для указания пути к классу:

  1. Использование аргумента командной строки -classpath или -cp, за которым следует пробел и список полных путей ко всем записям classpath, разделенных точкой с запятой (Windows) или двоеточием (Linux/Unix);
  2. Использование записи Class-Path в главном JAR-манифесте, где применяются другие правила.

Если в файле манифеста нет записи Main-Class, вам может потребоваться указать класс, содержащий main метод в командной строке, как это:

java -cp MyJar.jar com.example.MyMainClass

Смотрите также:

Другие вопросы по тегам