java - 无法使用正确的 list 执行使用 gradle 构建的 jar

标签 java gradle manifest executable-jar

我有一个 JavaFx 应用程序,我无法从命令行和 Windows 资源管理器运行它。我使用 Gradle 构建了 jar,并检查了 list ,它是正确的。我尝试了 StackOverflow 中的所有内容,但它总是提示无法从 Manifest 中找到入口点:

我的 main 位于 src/main/java 中,它被称为 Main。

这是gradle的配置:

group 'com'
version '1.0'

apply plugin: 'java'
apply plugin: 'application'

sourceCompatibility = 1.8

mainClassName = 'Main'

repositories {
    mavenCentral()
}

jar {
    manifest {
        attributes('Main-Class': 'Main')
    }
    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

请忽略依赖项(我构建了一个 uber jar)。
这是我的 list 的内容(由 gradle 创建,末尾有新行):
Manifest-Version: 1.0
Main-Class: Main

当我尝试运行它时,我总是得到这个:
错误:无法找到或加载主类 Main

最佳答案

因为你申请了application插件,没有 jar 的自定义任务是必需的。
所以我建议你删除它们,然后检查它是否创建了一个有效的 jar。

虽然我没有通过在本地运行它来确认,但我相信在 from 中完成的自定义是错误的,并创建了一个破 jar 。

关于java - 无法使用正确的 list 执行使用 gradle 构建的 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49016976/

相关文章:

html - 如何使用 HTML 5 使 XPages 应用程序脱机工作

google-chrome - 谷歌浏览器: DOMException: Registration failed - manifest empty or missing

java - 无法执行 jar 文件 : "no main manifest attribute"

java - 突破java中的递归方法

java - 使用 Java 将 .webp 转换为 .jpeg

java - 线程 "AWT-EventQueue-0"java.lang.NumberFormatException 中出现异常,但字符串不为空

unit-testing - 为什么 Android Studio 会说 "Test events were not received"?

android - 无法解析配置 ':app:debugAPKCopy' 的所有依赖项

java - 编译一个 groovy 脚本及其所有由 gradle 管理的依赖项,然后通过命令行将其作为独立应用程序运行

java - gwt - 为什么有两个 "Element"类型?