如何在intelliJ或eclipse中创建包含所有类和字节代码的JAR文件?

时间:2017-02-19 23:45:01

标签: java eclipse intellij-idea jar bytecode

我是java的新手,目前正在做一个java项目。这是关于如何提交项目的说明。有人能告诉我如何在intelliJ或eclipse中这样做吗?

请提交Java Archive(包含您编写的所有Java类的jar文件)。你的jar文件应该 包含: a)包含所有类的源代码 b)包含所有类的可执行文件(字节代码)

2 个答案:

答案 0 :(得分:0)

此问题一直是already answered here multiple times

由于您还需要包含源代码,因此您必须更改resource patterns,以便.java文件也复制到编译器输出,因此包含在.jar文件中

默认情况下,.java文件被排除在复制之外,因此您需要删除排除它们的!?*.java;模式:

exclude

!?*.java;!?*.form;!?*.class;!?*.groovy;!?*.scala;!?*.flex;!?*.kt;!?*.clj;!?*.aj

变为

!?*.form;!?*.class;!?*.groovy;!?*.scala;!?*.flex;!?*.kt;!?*.clj;!?*.aj

请勿忘记将其更改为现实世界的应用程序。

如果您需要IntelliJ IDEA的示例项目,可以下载from my another answer。它显示了一个更复杂的例子,其中使用不同的方式(单罐和多罐)将额外的依赖罐包含在项目中。

答案 1 :(得分:0)

如果您使用的是eclipse,则可以根据您的要求采用以下方法之一。

要导出您正在使用jar的项目:

1)右键单击您正在使用的项目>从上下文菜单中选择导出

enter image description here

2)选择Java> JAR文件

enter image description here

3)选择要导出为JAR的项目。输入生成jar文件的名称,然后单击“完成”。

enter image description here

如果您正在使用Maven,请对pom.xml执行以下配置

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4.1</version>
    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <archive>
            <manifest>
                <mainClass>com.xxxxx.xxxxx</mainClass>
            </manifest>
        </archive>
        <outputDirectory>C:\tmp</outputDirectory>
    </configuration>
    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <version>3.0.1</version>    
    <configuration>
        <outputDirectory>C:\tmp</outputDirectory>
    </configuration>    
    <executions>
        <execution>
            <id>attach-sources</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>