Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建没有主类的Jar库_Java_Intellij Idea_Jar_Main - Fatal编程技术网

Java 创建没有主类的Jar库

Java 创建没有主类的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文

今天我刚刚创建了一个Java库。我使用一个主类创建它,因为IntelliJ IDEA 14要求我添加一个。但是我希望它是一个普通的库,没有任何主类。是否可以从这样一个项目中创建一个jar文件,而不需要一个带有main方法的类?如果是这样,您如何创建这样一个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>