Gradle JavaExec抱怨无法加载或找到主类

时间:2018-06-22 16:25:09

标签: java gradle javaexec-gradle-plugin

我正在编写一个简单的Gradle任务,以在我的build.gradle文件中启动一个Java应用程序。当我尝试使用--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文件中,并且其中有一个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 个答案:

答案 0 :(得分:0)

这最终成为我传递给JavaExec的jvmArgs之一的解析问题。摆脱令人反感的论点会使事情奏效。