在Intellij 13上,创建的可执行jar无效或已损坏

时间:2014-04-14 17:04:24

标签: java jar intellij-idea executable-jar intellij-13

我尝试在Intellij 13(win8)的项目中创建一个可执行jar,遵循这些答案How to build jars from IntelliJ properly?并执行创建的jar,然后我得到"错误:Invaid或corrupt jarfile"然后是罐子的路径。

我的项目很简单,但有多个java文件和一个UI表单。

在构建完成后,在项目结构|工件上创建jar工件后,我调用构建工件|构建工件| Jar

我使用maven scafold创建了项目,但是没有依赖pom.xml。

我正在使用java7。 缺少什么?

Artifact

2 个答案:

答案 0 :(得分:7)

这是一个没有pom.xml的快速解决方案

我已经使用IntelliJ的工件设置解决了这个问题,方法是创建一个“META-INF”子文件夹并将Manifest文件复制到其中。

我不知道为什么甚至需要它,但似乎默认情况下IntelliJ IDEA不包含META-INF文件夹

enter image description here

指向文件:

enter image description here

答案 1 :(得分:5)

由于我无法使用IDEA本身创建一个jar,而我之前使用maven scaffold创建了我的项目,所以我决定使用maven来创建可执行jar。 为此,我添加到pom.xml:

<packaging>jar</packaging>
<properties>
    <jdk.version>1.7</jdk.version>
</properties>
<name>Project Name</name>

在构建代码中:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>${jdk.version}</source>
                <target>${jdk.version}</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>main.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

我也遇到了GUI-Designer创建的UI问题:创建的窗格中NullPointerException。为了使它工作,我添加了一个依赖:

<dependencies>
    <dependency>
        <groupId>com.intellij</groupId>
        <artifactId>forms_rt</artifactId>
        <version>5.0</version>
    </dependency>
</dependencies>

之后,我只在cmd上的项目目录中使用了mvn package

字体: