【问题标题】:create jar with intellij : "principal class unfindable or unloadable"使用 intellij 创建 jar:“主类无法找到或无法加载”
【发布时间】:2018-06-12 04:37:21
【问题描述】:

我尝试在 intellij 中从我的 java 项目创建一个 jar,但出现此错误。

我使用了 intellij 向导(“从具有依赖项的模块创建 jar”),提取了 jar 依赖项,并指定生成的 MANIFEST.MF 应位于 java/main/resources。

这是我得到的一些窗口:

这里是反编译jar的视图;有一个 META-INF 目录,其中包含 MANIFEST.MF 文件。主类是BookWindow;位于您可以在上面看到的视图目录中。

这里是视图目录,

这里是 MANIFEST.MF 文件。

法语的错误是:

PS D:\docs\biblio2\out\artifacts\biblio2_jar3> java -jar .\biblio2.jar Erreur :不可能的de trouver ou Charger la classe principale view.BookWindow

并且在以下2张截图中,可以查看到intellij idea的artifact页面:

我有什么问题?

编辑

好吧,我认为 BookWindow 的完整包名是“view”...我为此截取了另一个屏幕截图:

编辑 我可以从 IntelliJ 运行程序。 我将“com.*”目录中的文件移动到 src/main/java 但是如果我现在尝试用 maven 打包它,我会收到此错误:

编译错误 [错误] /D:/docs/biblio2/src/main/java/amazon/advertising/api/sample/SignedRequestsHelper.java:[28,39] 包 org.apache.commons.codec.binary 不存在

com.* 的子目录中有 2 个类,用于访问亚马逊图书数据库。在其“导入”中,第一行是:

导入 org.apache.commons.codec.binary.Base64;

在这 2 个动作(有 2 个文件)之前,我能够用 maven 打包项目,我得到了一个包含所有依赖项的巨大 jar 文件,但我无法运行它:“java -jar myfile.jar”得到了一个关于 Flamingo 类的 classNotFoundException,虽然它存在于 jar 的 lib/ 文件夹和 MANIFEST.MF 中... Flamingo 是一条漂亮的秋千丝带(类似于 2016 字)。

【问题讨论】:

  • view.BookWindow 类的完整包名是什么?
  • @Ivan 我截图了,我觉得就是简单的“查看”
  • 也许它不相关,但我在屏幕截图的依赖项列表中看到重复的 byte-buddy、byte-buddy-agent 和 mockito-core。您确定包含代码中使用的所有依赖项吗?我尝试在我的项目中使用 Intellij 向导构建 jar,它可以工作。
  • 您是否更改了创建的 jar 工件中的实际清单文件?您可以使用应用程序运行/调试配置通过 IDE 中的 main 方法运行 view.BookWindow 类吗?尝试通过 Maven 构建和运行 jar 并比较结果。我还看到src/com 文件夹中的项目中有另一个源根目录。这样的布局对我来说看起来不正确。那个文件夹是干什么用的?你能把它移到src/main/java标准Maven位置吗?
  • @Andrey 我更新了我的问题,我没有更改清单文件。

标签: java intellij-idea jar packaging


【解决方案1】:

好的,我做到了。我仍然不知道为什么火烈鸟 jar 和主类都不可用,但是我通过在 intellij 中创建一个新的工件来使其工作,并将所有 jar 放在项目的 jar 之外。外部的所有依赖项。下次我将采用持续集成,因此我将始终准备好一个工作 jar!爱丽儿

【讨论】:

    猜你喜欢
    • 2017-11-06
    • 2017-12-14
    • 2019-07-21
    • 2021-12-10
    • 2015-03-05
    • 1970-01-01
    • 2012-10-13
    • 2018-11-24
    • 2020-11-02
    相关资源
    最近更新 更多