将Java项目打包成可执行的jar包

网友投稿 875 2022-12-04


将Java项目打包成可执行的jar包

一、通过 eclipse 自带打包

测试项目:

Main.java

package com.bug;

import org.junit.Test;

public class Main {

public static void main(String[] args) {

test();

}

@Test

public static void test() {

System.out.println("HelloWorld");

System.out.println("HelloWorld");

System.out.println("HelloWorld");

System.out.println("HelloWorld");

System.out.println("HelloWorld");

System.out.println("HelloWorld");

}

}

1.右键项目文件夹,点击export,选择JAR flie点击next。

2.勾选要打包的文件夹,这里只要勾选需要编译的java文件就可以了,下面的JAR file为打包后的保存路径和jar名称,选择好后点击next。

Export generated class files and resources 表示只导出生成的.class文件和其他资源文件

Export all output folders for checked projects 表示导出选中项目的所有文件夹

Export java source file and resouces 表示导出的jar包中将包含你的源代码*.java,不想泄漏源代码,那么就不要选这项了

Export refactorings for checked projects 把一些重构的信息文件也包含进去

3.如下图,点击next。

4.如下图,Main class为项目入口路径,点击后面的按钮可以选择项目入口路径,选择好后点击finish即可完成打包。

Generate the manifest file:是系统帮我们自动生成MANIFEST.MF文件,如果你的项目没有引用其他class-path,那可以选择这一项。

Use existing mainfest from workspace:这是可以选择我们自定义的.MF文件,格式如上所写,引用了第三方包时选用。

Seal content:要封装整个jar或者指定的包packet。

Main class:这里可以选择你的程序入口,将来打包出来的jar就是你这个入口类的执行结果。

在打包好后有几个问题需要注意:

1.MANIFEST.MF文件需要根据自己的项目需要进行编写替换,MANIFEST.MF文件的修改需要严格遵守书写规范,

首行为 Manifest-Version: 1.0

第二行为Class-Path: xxx.jar(依赖的jar,没有就不写)

第三行为Main-Class: 项目入口路径

每个冒号后面需要有一个空格

每行结束不能有空格

Main-Class: 项目入口路径 后面需要打两个换行

如果依赖多个jar,则书写完每个jar后空一格写下一个

每行不能超过72个字符,如果每行写一个jar,则每行开始空两格。

lib/junit.jar  org.hamcrest.core_1.3.0.v20180420-1519.jar,为我的 juit 需要的 jar 包,创建一个 lib 目录存储着两个 jar 包。

2. 使用eclipse将项目打包后,项目中实际调取的依赖和文件等路径一般需要和项目的jar存放到同一级目录,否则会出现ClassNotFound等异常,放在同一级目录也方便后面根据需求修改配置文件。

3.编译好的jar可以用java -jar xxx.jar运行,这种运行方式会在命令行或linux服务器上显示启动和项目中的打印信息,当使用Ctrl+C退出时,jar的运行也会终止。

二、使用 maven 打包

Maim

package com.bug.test;

import org.junit.Test;

public class Main {

public static void main(String[] args) {

test();

}

@Test

public static void test() {

for(int i = 0; i < 10; i++) {

System.out.println(i);

}

}

}

pom.xml

xmlns:xsi="http://w3.org/200qwmMUK1/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.bug

Test

0.0.1-SNAPSHOT

junit

junit

RELEASE

maven-compiler-plugin

2.3.2

1.8

1.8

maven-assembly-plugin

jar-with-dependencies

com.bug.test.Main

make-assembly

package

single

xmlns:xsi="http://w3.org/200qwmMUK1/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.bug

Test

0.0.1-SNAPSHOT

junit

junit

RELEASE

maven-compiler-plugin

2.3.2

1.8

1.8

maven-assembly-plugin

jar-with-dependencies

com.bug.test.Main

make-assembly

package

single

这样也可以:

org.apache.maven.plugins

maven-jar-plugin

1.8

1.8

com.bug.test.Main

true

lib/

注意:如果工程上显示红叉。在项目上右键->maven->update project即可。

将程序打成jar包:

步骤详情:右键->Run as->maven install。等待编译完成就会在项目的target文件夹中生成jar包。如果看不到。在项目上右键->Refresh,即可看到。

参考:https://jb51.net/article/142553.htm

idea打包java程序(包含依赖的所有jar包):https://jb51.net/article/188851.htm


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java如何基于wsimport调用wcf接口
下一篇:Spring容器初始化及问题解决方案
相关文章

 发表评论

暂时没有评论,来抢沙发吧~