gpt4 book ai didi

class - IntelliJ 构建错误的 JAR : Could not find or load main class

转载 作者:行者123 更新时间:2023-12-04 02:15:42 25 4
gpt4 key购买 nike

我有一个简单的例子

public class FileSystemReadFile {
public static void main(String[] args) throws IOException {
System.out.println("Reading the file" + args[0]);
}
}

它是在 IntelliJ 中创建的,我想在其中构建 JAR 文件;所以我做了什么:
  • 添加了具有依赖项的工件(大概我有一些);
  • 确保 MANIFEST.MF位于src\main\resources\META-INF\因为它已经在网站的某个地方提到过。
  • 运行 Artifact build,它在 out 文件夹中给了我 JAR 文件,然后我运行那个 jar 文件,告诉我“找不到或加载主类”java <name>.jar

  • 您可能会看到主类已添加到 MANIFEST 中,并且 list 的位置也很好。

    Project structure

    当我打开创建的 JAR 文件时,我看到了相同的 MANIFEST 内容,我看到了很多依赖模块,但我没有看到我的类!

    enter image description here

    我怀疑这是一个原因。有任何想法吗?

    最佳答案

    如果您在应用程序中包含任何已签名的 JAR,然后使用 IntelliJ 构建工件,它将提取 JARS 并将它们与您的编译输出捆绑在一起。

    这会导致 JAVA 安全异常。我已经在签名的 Eclipse Paho 和 Bouncy CaSTLe 上看到了这一点。

    您可以使用 jarsigner 工具检查您正在使用的任何库 JAR 是否已签名。

    jarsigner -verify -verbose  <path to library JAR>

    更改您的 IntelliJ 工件设置,以便将它们捆绑为库而不是被提取。如您所料,提取会使证书无效。

    See how Paho and BCP are not extracted during artifact creation

    尝试仅使用 Main 创建一个虚拟项目。一次添加 1 个库 JAR(您正在尝试构建)。每次构建一个输出 JAR 直到 Main 中断。我就是这样发现的。

    IntelliJ 应该警告你.....

    关于class - IntelliJ 构建错误的 JAR : Could not find or load main class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40636790/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com