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. Избавившись от оскорбительного аргумента, все заработало.