我从使用Eclipse的许多库的项目创建可运行JAR的过程已经完成.
导出> Runnable JAR>选择启动配置>将所需的库打包到生成的JAR>完成
这会在我的导出目标中创建一个JAR,我将其FTP到我的服务器并运行正常.
我最近因各种原因切换到IntelliJ,除了构建我的JAR之外,它在所有情况下都有所改进,这迫使我暂时回到日食.
使用IntelliJ I:
打开项目结构>工件,并从具有依赖项的模块创建新的JAR.然后,我的输出布局包含JAR的名称,其中的META-INF以及所有格式的库Extracted
(抱歉,我无法上传此VPN上的屏幕截图.)
我构建我的工件(大约大15MB)并将其FTP到我的服务器,尝试运行它,我得到错误:
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
我如何模仿我在Eclipse中的表现?
编辑
创建的两个JAR差异很大:
Eclipse创建的有效jar看起来像这样:
而无效的.JAR看起来像这样:
你面临两个问题,一个似乎很重要,一个是次要问题:
专业:签名例外
轻微:jar的大小比eclipse生成的jar大15 MB.
这两个问题的解决方案在于构建工件的方式.首先,删除all,extracted *.jar
然后从可用元素pan中添加所有jar,如图所示.
很明显,仅添加包装(压缩)的罐子会减小尺寸.但它也解决了签署问题.有关更多说明,请查看此文章.我只会引用一行.
最好保留官方jar,只需将其作为依赖项添加到清单文件中......
似乎某些依赖项已签名并且重新打包会混淆您项目的META-INF.