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

我尝试在Intellij 13(win8)的项目中创建一个可执行jar,按照这些答案How to build jars from IntelliJ properly?并执行创建的jar,然后我得到"Error: Invaid or corrupt jarfile"后跟jar的路径 .

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

在构建之后,在 Project Structure|Artifacts 上创建jar工件之后调用 Build|Build Artifacts|Jar .

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

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

Artifact

回答(2)

2 years ago

Here is a quick solution WITHOUT pom.xml

我通过创建“META-INF”子文件夹并在其中复制Manifest文件,使用IntelliJ的工件设置解决了这个问题 .

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

enter image description here

指向文件:

enter image description here

2 years ago

由于我无法使用IDEA本身创建一个jar,而我之前使用maven脚手架创建了我的项目,所以我决定使用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 .

字体: