如何从我的 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 路径中引用了它。因为我没有外部库了,所以我的清单文件没有被覆盖。
我费了好大劲才弄明白为什么 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 路径中引用了它。因为我没有外部库了,所以我的清单文件没有被覆盖。