Gradle JavaExec жалуется на невозможность загрузить или найти основной класс

Я пишу простую задачу Gradle для запуска Java-приложения в моем файле build.gradle. Когда я пытаюсь запустить задачу с --info флаг, он выводит команду Java следующим образом:

<JAVA_HOME>/bin/java -Xmx256M
   -cp <ABSOLUTE_PATH_TO_ALL_LIBS>/launcherLib/launcherLib.jar:
   <ABSOLUTE_PATH_TO_ALL_LIBS>/lib1/lib1.jar 
   com.hungryTux.launcher.LauncherClass 'launcherArg'

Затем Gradle жалуется, что не может загрузить или найти основной класс. Я знаю что com.hungryTux.launcher.LauncherClass класс присутствует в launcherLib JAR-файл, указанный в classpath и имеет main метод в этом. Точное сообщение об ошибке Error: Could not find or load main class,

Что еще более забавно, так это то, что, если бы я взял эту команду из вывода задач Gradle и попытался запустить ее непосредственно на терминале, он, похоже, нашел основной класс и правильно запустил приложение.

Рабочий каталог для этой задачи Gradle - это корень моего проекта, содержащий build.gradle файл. Когда я пытаюсь запустить команду вручную, я делаю это из той же директории.

Я чувствую, что упускаю что-то очевидное в том, как работает задача JavaExec. Я прочитал документацию для этого, но ничто действительно не звонит в звонок.

Я должен отметить, что com.hungryTux.launcher.LauncherClass класс не указан как Main-Class в META-INF/MANIFEST.MF файл, содержащийся в launcherLib.jar файл. Может ли это быть проблемой? Если это так, как это работает при запуске из командной строки?

1 ответ

В результате возникли проблемы с синтаксическим анализом одного из jvmArgs, которые я передавал JavaExec. Избавившись от оскорбительного аргумента, все заработало.

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