首页 文章

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

提问于
浏览
0

我正在编写一个简单的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 类未被指定为 launcherLib.jar 文件中包含的 META-INF/MANIFEST.MF 文件中的 Main-Class . 这可能是个问题吗?如果是这样,从命令行运行时这是如何工作的?

1 回答

  • 0

    这最终成为我传递给JavaExec的jvmArgs之一的解析问题 . 摆脱令人讨厌的争论让事情变得有效 .

相关问题