Java 创建没有主类的Jar库
今天我刚刚创建了一个Java库。我使用一个主类创建它,因为IntelliJ IDEA 14要求我添加一个。但是我希望它是一个普通的库,没有任何主类。是否可以从这样一个项目中创建一个jar文件,而不需要一个带有main方法的类?如果是这样,您如何创建这样一个jarJava 创建没有主类的Jar库,java,intellij-idea,jar,main,Java,Intellij Idea,Jar,Main,今天我刚刚创建了一个Java库。我使用一个主类创建它,因为IntelliJ IDEA 14要求我添加一个。但是我希望它是一个普通的库,没有任何主类。是否可以从这样一个项目中创建一个jar文件,而不需要一个带有main方法的类?如果是这样,您如何创建这样一个jar 如果您从未使用过main方法,那么使用main方法似乎有点傻。您可以用几种方法来实现它,例如从命令行、IDE、maven或其他构建工具,我描述了两种方法: 命令行: 您可以从命令行(无IDE)创建jar文件,以下是参考: 其中,jar文
如果您从未使用过main方法,那么使用main方法似乎有点傻。您可以用几种方法来实现它,例如从命令行、IDE、maven或其他构建工具,我描述了两种方法: 命令行: 您可以从命令行(无IDE)创建jar文件,以下是参考: 其中,
jar文件
是您想要的.jar文件名,输入文件
是您想要放入库中的文件(可以是通配符,例如:*.class
)
Intellij Idea:
创建本文所述的工件,但不指定主类
然后单击构建>构建工件>构建
即使没有主类,这也可以工作。使用Maven(没有IDE依赖项,但为了方便起见可以从IDE调用)这样的构建工具和shade插件来创建一个“uber”JAR(将所有需要的依赖项包含到项目的最后一个JAR中) “pom.xml”
org.apache.maven.plugins
您是如何告诉IntelliJ制作jar文件的,以及它是如何提示您的?我怀疑您选择了一个选项,这意味着您确实想要一个主类。“使用依赖项从模块创建jar文件”主类只是MANIFEST.MF中的一行,在使用“-jar”运行时使用。在其他情况下,它应该按照您想要的方式运行。是的,但是由于它是一个库,所以这个类也可以在其中使用。在中添加一个没有任何函数的类似乎很奇怪。只需删除主类即可。你不需要一开始就创建它。谢谢你清除了这个!看起来很奇怪,当我将新库放在另一个项目中时,它仍然显示库文件夹中的主类。这正常吗?是库中的主类吗?这是一个糟糕的答案,当有一个更合适的(文档化的,非特定于IDE的)方法时,会显示一些(其他)IDE的图片。我想,问题是:如何在IntelliJ中实现它-有一些答案如何从命令行实现它。我给出了答案,并将这种可能性考虑进去。问题(简明扼要)是:“是否可以创建一个jar文件[],而不需要一个带有main方法的类?如果可以,如何创建这样一个jar。”我同意这应该是“正确”的答案。事实上,有太多关于编程的文章深入到IDE的细节,而这些细节和语言或任何最终的服务器端“运行时”实现无关。
jar cf jar-file input-file(s)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<!-- Run shade goal on package phase -->
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>