如何从我的 intellij 项目创建可执行 JAR 文件?

How do I create an executable JAR file from my intellij project?

我费了好大劲才弄明白为什么 jar 说找不到主 class

项目:
4 class 个文件
属性文件
2 个库(来自 Maven)

清单文件:

Manifest-Version: 1.0
Main-Class: all.GuiApp

所有class都在同一个包里"all"

我在 intellij 工件中添加了工件 - 并指定了主要 class。尝试了 'extract to JAR' 和 'copy to output and link'

的两个选项

当我双击它时,它没有任何反应。
当我从命令行执行它时,它给我一条消息,说它找不到主 class。我不确定我还能尝试什么来让它工作。

编辑:
运行 以下命令实际上让我更近了一步,它是否以某种方式看不到清单文件?我如何确保它在正确的位置?

java -classpath jarName.jar all.GuiApp

这一步之后它告诉我找不到我的属性文件。我什至复制了 src/main/resources 文件夹结构并在那里添加了文件(以及在根 jar 存档中,但它仍然无法加载它。

POM 文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>updateTimes</groupId>
    <artifactId>update_ms</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>2.10.1</version>
        </dependency>
        <dependency>
            <groupId>com.jcraft</groupId>
            <artifactId>jsch</artifactId>
            <version>0.1.53</version>
        </dependency>

    </dependencies>
</project>

GuiApp 中的主要声明:

 public static void main(String[] args) {

试试这个:mvn package。基于 maven documentation 你应该能够在 运行 这个命令之后得到 jar。

似乎问题是我在 intellij 中看到的清单文件是正确的,但正在被 maven 库覆盖。据我所知,我需要为外部库创建一个 jar,并单独编译我​​的代码。

我通过使用 jch 和 mongo 的外部 jar 文件纠正了这个问题(在同事的帮助下)。然后我在 class 路径中引用了它。因为我没有外部库了,所以我的清单文件没有被覆盖。