Macos IntelliJ:在jar工件中包含jar

Macos IntelliJ:在jar工件中包含jar,macos,jar,intellij-idea,Macos,Jar,Intellij Idea,使用IntelliJ 9.0.2社区版在Mac上开发 我有一个程序,它依赖于两个库jar。我已经想出了如何让IntelliJ为我的源代码制作一个jar(带有Artifact选项卡),甚至在其中包含两个jar 但是,如果我得到它生成的jar文件的列表,它看起来是这样的: com/acme/MyClass1.class com/acme/MyClass2.class … mylib1.jar myLib2.jar 而且,毫不奇怪,如果我双击jar文件,它会在第一次尝试访问一个或其他库jar中的类时收

使用IntelliJ 9.0.2社区版在Mac上开发

我有一个程序,它依赖于两个库jar。我已经想出了如何让IntelliJ为我的源代码制作一个jar(带有Artifact选项卡),甚至在其中包含两个jar

但是,如果我得到它生成的jar文件的列表,它看起来是这样的: com/acme/MyClass1.class
com/acme/MyClass2.class

mylib1.jar
myLib2.jar

而且,毫不奇怪,如果我双击jar文件,它会在第一次尝试访问一个或其他库jar中的类时收到一个NoClassDefFoundError

似乎我需要告诉IntelliJ“内联”库JAR——但是这个菜单选项总是灰色的


有人知道如何将jar内联到jar工件中吗?

idea还不支持它,您可以使用Ant集成来打包jar(将所有jar解包到temp文件夹中,然后将项目输出和这个temp文件夹打包到单个jar中,或者使用类似于Ant的任务)


如果您希望此功能出现在将来的IDEA版本中,请。

将依赖项JAR包含在JAR中应该允许您的代码成功运行。您的类路径上可能没有JAR。

我将使用Maven汇编插件。它很简单,可以为您提供一个整洁的小jar文件。

当然,我实际上可以从一些旧项目中挖掘出合适的ant代码,所以它不会太大。但是,让IntelliJ“假装”它是可能的(通过一个菜单项,它通常是灰色的,在在线手册中有一个平淡的陈述——“使用这个选项将选定的工件分解,并将其组件作为独立的元素呈现。”),然后不可能有点……反高潮,我们应该说!!:-)