Gradle 生成的 Scala JAR 出现“无法找到或加载主类”错误

2024-01-10

经过大量研究,我似乎无法找到使用 Gradle 生成可运行的 Scala jar 文件时遇到的问题的根源。我正在重写“jar”Gradle 任务来创建一个从我的主类文件开始执行的 jar 文件(包括依赖项)。但是,每当我运行它时,无论我使用什么作为 Main-Class 属性,控制台都会抛出“无法找到或加载主类”错误。这是我到目前为止所拥有的:

构建.gradle

buildscript {
    repositories {
        mavenCentral()
    }
}

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

repositories {
    mavenCentral()
    // some other repos
}

version = '1.0'
sourceCompatibility = 1.8
targetCompatibility = 1.8

mainClassName = "com.test.Main"

dependencies {
    // my dependencies
}

jar {
    zip64 = true

    manifest {
        attributes "Main-Class": "$mainClassName"
    }

    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

src/main/scala/com/test/Main.scala

package com.test

object Main {
  def main(args: Array[String]): Unit = {
    print("Hello world");
  }
}

事实上,当我运行“java tf test.jar”时,它在 jar 的根目录中显示“com/test/Main.class”!我是否缺少一些重要的类路径信息或其他信息?我使用 Gradle 3.5 在 macOS Sierra 上运行 Java 1.8。任何帮助表示赞赏。谢谢!


我遇到了类似的问题,结果发现我的 jar 文件中的 META-INF 文件夹包含一些 RSA、SF 和 DSA 文件。

一旦我排除了它们,它就起作用了!

以下是如何根据您的 jar 声明

jar {
    zip64 = true

    manifest {
        attributes "Main-Class": "$mainClassName"
    }

    from {
        configurations.compile.collect { it.isDirectory() ? it : zipTree(it) 
    }
    exclude ('META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA')
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gradle 生成的 Scala JAR 出现“无法找到或加载主类”错误 的相关文章

  • 如果在睡眠线程上调用interrupt()会发生什么?

    我有一个线程 然后run I call sleep 如果我中断这个线程会发生什么 MyThread extends Thread public void run try sleep 1000000 catch InterruptedExce
  • 在文本文件中搜索单词并返回其频率

    如何在包含单词文本的文本文件中搜索特定单词并返回其频率或出现次数 使用扫描仪 String text Question how to search for a particular word in a text file containin
  • 在泛型方法中返回原始集合类型

    假设我们想要创建一个像这样的函数minBy返回集合中同等极简主义的所有元素 def multiMinBy A B Ordering xs Traversable A f A gt B val minVal f xs minBy f xs f
  • Condition 接口中的 signalAll 与对象中的 notificationAll

    1 昨天我才问过这个问题条件与等待通知机制 https stackoverflow com questions 10395571 condition vs wait notify mechanism 2 我想编辑相同的内容并在我的问题中添加
  • Java套接字:在连接被拒绝异常时重试的最佳方法?

    现在我正在这样做 while true try SocketAddress sockaddr new InetSocketAddress ivDestIP ivDestPort downloadSock new Socket downloa
  • 记录骆驼路线

    我的项目中有几个 Camel 上下文 如果可能的话 我想以逆向工程方式记录路线 因为我们希望保持与上下文相关的文档最新 最好的方法是什么 我们倾向于预先实际设计路线 并使用来自EIP book http www eaipatterns co
  • Android Studio更新到1.5后Gradle错误

    今天我已将 Android Studio 更新到 v1 5 我的 libgdx 项目在这次更新之前运行良好 现在我收到此错误消息 Error Unable to load class org gradle mvn3 org sonatype
  • Spark:导入UTF-8编码的文本文件

    我正在尝试处理一个包含很多特殊字符的文件 例如德语变音符号 o 等 如下所示 sc hadoopConfiguration set textinputformat record delimiter r n r n sc textFile f
  • Java 服务器-客户端 readLine() 方法

    我有一个客户端类和一个服务器类 如果客户端向服务器发送消息 服务器会将响应发送回客户端 然后客户端将打印它收到的所有消息 例如 如果客户端向服务器发送 A 则服务器将向客户端发送响应 1111 所以我在客户端类中使用 readLine 从服
  • Spark-1.6.1 上的 DMLC 的 XGBoost-4j

    我正在尝试在 Spark 1 6 1 上使用 DMLC 的 XGBoost 实现 我能够使用 XGBoost 训练我的数据 但在预测方面面临困难 我实际上想以在 Apache Spark mllib 库中完成的方式进行预测 这有助于计算训练
  • 获取给定类文件的目录路径

    我遇到的代码尝试从类本身的 class 文件所在的同一目录中读取一些配置文件 File configFiles new File this getClass getResource getPath listFiles new Filenam
  • Java - 返回值是否会中断循环?

    我正在编写一些基本上遵循以下格式的代码 public static boolean isIncluded E element Node
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • 在为 Android 实现 Google 登录时,任务“:app:transformClassesWithDexForDebug”执行失败

    我正在尝试为 Android 实现 Google 登录 并且我正在按照以下说明进行操作 https developers google com identity sign in android start integrating https
  • 如何在 Quartz 调度程序中每 25 秒运行一次?

    我正在使用 Java 的 Quartz Scheduling API 你能帮我使用 cron 表达式每 25 秒运行一次吗 这只是一个延迟 它不必总是从第 0 秒开始 例如 序列如下 0 00 0 25 0 50 1 15 1 40 2 0
  • 哪个集合更适合存储多维数组中的数据?

    我有一个multi dimensional array of string 我愿意将其转换为某种集合类型 以便我可以根据自己的意愿添加 删除和插入元素 在数组中 我无法删除特定位置的元素 我需要这样的集合 我可以在其中删除特定位置的数据 也
  • Java的-XX:+UseMembar参数是什么

    我在各种地方 论坛等 看到这个参数 并且常见的答案是它有助于高并发服务器 尽管如此 我还是找不到 sun 的官方文档来解释它的作用 另外 它是Java 6中添加的还是Java 5中存在的 顺便说一句 许多热点虚拟机参数的好地方是这一页 ht
  • Android - 9 补丁

    我正在尝试使用 9 块图片创建一个新的微调器背景 我尝试了很多方法来获得完美的图像 但都失败了 s Here is my 9 patch 当我用Draw 9 patch模拟时 内容看起来不错 但是带有箭头的部分没有显示 或者当它显示时 这部
  • 在android中跟踪FTP上传数据?

    我有一个运行 Android 的 FTP 系统 但我希望能够在上传时跟踪字节 这样我就可以在上传过程中更新进度条 安卓可以实现这个功能吗 现在 我正在使用org apache common net ftp我正在使用的代码如下 另外 我在 A
  • 在哪里存储 Java 的 .properties 文件?

    The Java教程 http download oracle com javase tutorial essential environment properties htmlon using Properties 讨论如何使用 Prop

随机推荐

  • achartengine x 轴标签与值相比发生偏移

    我注意到我的时间表的 Xlabel 与 X 不同步 价值观 这些点应该位于标签的正上方 在左侧 可以 但是它向右移动 我不知道如何解决这个问题 我得到什么 http tinypic com r 2uqj905 7 http tinypic
  • Mysql:不允许从函数返回结果集

    我写了一个函数但收到此错误不允许从函数返回结果集 DELIMITER CREATE FUNCTION getTestFunction p ParentID int p ListName nvarchar 50 p Type nvarchar
  • matlab中识别相邻像素

    我们假设 A 是 1 1 1 1 1 1 1 2 2 3 3 3 4 4 2 2 3 3 4 4 2 2 2 3 4 4 4 4 3 3 5 5 5 5 5 5 我需要识别与特定强度值相邻的所有数字 例如 强度 1 3 和 4 与强度值 2
  • 从自定义路径预加载 env 文件

    我试图在节点应用程序启动时预加载 env 文件 我有以下配置 但每当我运行时npm run start dev我收到错误 scripts lint tslint project tsconfig json build tsc prestar
  • 如何调整 Altair 中的比例范围?

    当使用 Altair 绘制一组图时 我无法将所有轴调整到相同的比例 如下所示 class list c CS m c CS s c SC m c SC s t CS m t CS s t SC m t SC s list of plots
  • 限制 ruby​​ 文件流的速率

    我正在开发一个项目 该项目涉及将 Flash 视频文件从多个地理分布的节点上传到 S3 存储桶 每个视频文件约为 2 3mb 我们每十分钟仅发送一个文件 每个节点 但是我们消耗的带宽需要将速率限制在 20k s 因为这些节点将流媒体传输到C
  • linux 查找正则表达式

    我在使用正则表达式时遇到问题find命令 可能我不明白如何在命令行上转义 为什么这些不一样 find regex 1234567890 find regex digit bash Ubuntu 你应该看看 regextype的论证find
  • 如何使第一个网格项目跨度为 100%?

    我有以下桌面版 它创建了 4 个相等的列 全部为 25 footer inner display grid grid template columns repeat 4 1fr div class footer inner div One
  • 正则表达式检测双花括号之间的文本

    使用正则表达式 我想检测开始和结束双大括号之间的文本 字符串 并且它应该检测任何内部大括号以及文本 例如 detect this and this as well text but text does not ends here so it
  • 设置背景颜色或 WPF (4.0) 列表框 - Windows 8

    我试图将选定的 ListBoxItem 的背景颜色设置为白色而不是系统颜色 我已经阅读了我可以在此处找到的内容 并遵循或相信遵循了那里的建议 更改选定列表框项目的背景颜色 https stackoverflow com questions
  • InvalidArgumentException 请提供有效的缓存路径错误 laravel 5.2

    我正在与Laravel 5 2我运行时出错composer update or artisan optimize 我在我的供应商上搜索过 没有找到compile php 文件 我尝试生成这个我运行工匠优化 我有同样的错误 InvalidAr
  • Visual Studio 从哪里复制 .vs 文件夹中的 applicationhost.config 文件?

    Visual Studio 在 Web 项目的解决方案根目录中创建一个名为 vs 的隐藏文件夹 里面有一个 config 子文件夹 其中包含应用程序主机配置文件 如果 vs 文件夹丢失 Visual Studio 将在我打开解决方案或启动调
  • Android 应用程序在 Reliance JIO 4G 连接中运行不频繁

    我有一个 Android 应用程序 在除 Reliance Jio 之外的所有运营商的 WiFi 和 3G 连接中都可以正常工作 但是 我发现 有时 当使用 Reliance JIO 4G 连接时 Android 应用程序无法连接到我的 H
  • 错误:Google id_token 不允许与此应用程序一起使用。 Firebase 访问在工作后失败

    我正在使用 Google SignIn 然后使用 Firebase 进行身份验证signInWithCredential 传递 Google 凭据 我遵循了所有程序 一切正常 突然它停止工作了 我转到以前的工作代码 但它仍然失败 所以看来数
  • 负填充的影响

    我刚刚开始学习 android 我有一个关于负填充的问题 负内边距究竟如何影响视图 另外 假设我介绍一个bottomPadding 5dp 这是否将 padding 的边界扩展了 5dp 感谢所有帮助 In LinearLayout and
  • 如何在 PHP 中 $_POST 动态分配值? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我在 mySQL 中创建了一个表 其中包含 名称 等字段 并根据该表中的行数动态创建了几个 div 包含表单和按钮 它看起来像这样
  • MemoryCache 不遵守配置中的内存限制

    我正在使用 NET 4 0内存缓存 http msdn microsoft com en us library system runtime caching memorycache v vs 110 aspx应用程序中的类并尝试限制最大缓存
  • 根据 buildType 使用 gradle 覆盖资源

    我想用 gradle 覆盖 res strings xml 中的一些字符串 我知道自 Android Gradle 插件 0 7 起 http tools android com tech docs new build system可能有一
  • WiX 安装程序捆绑包 安装后启动应用程序

    我有一个捆绑包 其中包括用于 NetFx45Web 的 PackageGroupRef 一个用于所需驱动程序的 ExePackage 和用于我的应用程序的 MsiPackage 我想在整个安装过程完成后启动我的应用程序 我尝试使用
  • Gradle 生成的 Scala JAR 出现“无法找到或加载主类”错误

    经过大量研究 我似乎无法找到使用 Gradle 生成可运行的 Scala jar 文件时遇到的问题的根源 我正在重写 jar Gradle 任务来创建一个从我的主类文件开始执行的 jar 文件 包括依赖项 但是 每当我运行它时 无论我使用什