关于如何打包/运行jar包,以及生成exe文件。之前各种查询、博客,终于搞明白究竟是咋回事。记得还做过笔记的。今天要打包生成exe用的时候,居然忘了咋怎来着。去查看之前的笔记,死活没找到(好像被删掉了)。决定写下来,以便之后随时调用。

一、jar包

  什么是jar包?jar包即(Java Archive File),也就是java归档文件。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。jar分为:一般jar包和可执行jar包。

二、如何打包成jar包

  ①使用eclipse进行打包                   

1.选择要打包的工程-->鼠标右键-->选择Export

  

2.导出为一般jar包 和 可执行jar包

  ②使用命令进行打包成jar包         (已配置好java环境,可直接在控制台输入jar查看命令帮助)

打包为一般jar包

  1)使用eclipse编写的程序:class文件在bin目录下,src中是源文件。

  步骤:在工程目录下运行CMD,输入命令: jar cvf jarPackageName.jar -C bin . 

     会在工程目录下生成jar包文件。

  2)使用编辑器编写的,且编译后的.class文件,根据目录进行打包,若单个或多个class文件则

  步骤:在class文件目录下运行CMD,输入命令:jar cvf jarPackageName.jar No1.class No2.class

打包为可执行jar包

  1)使用eclipse编写的程序:导出的可执行jar 不要需进行修改,可直接运行jar包。

  2)使用编辑器编写的,且编译后的.class文件。(jar cvfm jarPackageName.jar MANIFEST.MF bin .)

  步骤:创建MANIFEST.MF文件,在文件按格式写下

    Manifest-Version: 1.0
    Created-By: 1.6.0_22(Sun Microsystems Inc.)
    Class-Path: .
    Main-Class: MianClass

  Manifest-Version 指清单版本,默认生成Manifest-Version: 1.0

  Created-By 指创建作者,默认生成Created-By: 1.6.0_22 (Sun Microsystems Inc.)

  Class-Path 指主类所在路径

  Main-Class 指程序的主类 main 方法的类。

  在class文件目录下CMD中,输入命令:jar cvfm jarPackageName.jar MANIFEST.MF *.class

  注 : 

>>从eclipse生成的一般jar包和可执行jar中可以看出:一般jar 包中的MANIFEST.MF文件没有指定Main-Class,而可执行jar包中是含有的。

>>可执行的jar包中必须指定Main-Class,否则会提示“jar包中没有主清单属性”。

>>若MANIFEST.MF文件中只写Main-Class时,需要在末尾敲回车。

三、运行jar包

  在jar包目录下进入CMD,输入命令:java -jar jarPackageName.jar 

四、生成exe文件

前提准备:exe4j_window-x64.exe;可执行jar包

1.欢迎界面

2.选择“JAR in EXE ” mode ,点击Next

3.应用程序配置,输入程序名称。及保存exe文件的路径

4.选择可执行的程序类型,输入exe文件名,点击Next(其他选项可不填)

若有需要可选择设置

5.选择jar包和jar包中的Main-class,点击Next

6.设置程序的运行环境。点击Next

7.一直点击Next,进入该界面(生成exe程序界面).成功会直接进入Finished界面。否则出现弹出报错

8.完成

如何打包/运行jar包,及生成exe文件的更多相关文章

  1. maven本地安装jar包同时生成pom文件

    maven 本地安装jar包:mvn install:install-file -Dfile=本地路径/ojdbc12.jar -DgroupId=com.oracle -DartifactId=oj ...

  2. 原!!jar包 --可执行exe文件--安装包

    这几天由于部门统计名单,都是一边报,一边统计,感觉麻烦,写了个小工具,做成安装包.其他不多说,网上都有,我就自己按照网上操作,碰到了一些问题,对这些问题说下. ----------废话少说------ ...

  3. 用exe4j将jar包转成.exe文件的教程

    标准版教程再这里 http://pan.baidu.com/s/1i3gn0Br 1.    下载安装exe4j文件,并把你的java文件生成jar格式的文件,在桌面新建一个文件夹,把jar文件放进去 ...

  4. Java多线程之赛跑游戏(含生成exe文件)

    在JavaSE中,多线程是一个重要的内容. 我们要了解多线程的概念,就要先了解进程的概念:要了解进程的概念,就离不开操作系统的概念. 在一台正常运行的电脑中,计算机硬件(如CPU.内存.硬盘.网卡.显 ...

  5. 【Maven学习】Maven打包生成普通jar包、可运行jar包、包含所有依赖的jar包

    http://blog.csdn.net/u013177446/article/details/54134394 ******************************************* ...

  6. .bat文件和Jar包的生成及运行

    .bat文件和Jar包的生成及运行 1.Jar包简单介绍 Jar包是Java中所特有的一种压缩文档,有点类似于zip包,区别在于Jar包中有一个META-INF\MANIFEST.MF文件(在生成Ja ...

  7. 【spring cloud】【IDEA】【Maven】spring cloud多模块打包,打包的jar包只有几k,jar包无法运行,运行报错:no main manifest attribute, in /ms-eureka.jar

    ======================================================================================== 引申:maven打包多 ...

  8. maven 打包可运行jar包(转)

    目录 1.前提 2.方法一:使用maven-jar-plugin和maven-dependency-plugin插件打包 3.方法二:使用maven-assembly-plugin插件打包 4.方法三 ...

  9. Spring boot框架项目,使用maven命令将配置文件打包到jar包外,项目运行读取jar外配置文件

    1.1      在eclipse中配置maven命令 Mvn -e clean package -Ptest -DskipTests=true 1.1.1    执行命令之后得到jar 1.2    ...

随机推荐

  1. js中 onreadystatechange 和 onload的区别

    IE的script 元素只支持onreadystatechange事件,不支持onload事件. FF的script 元素不支持onreadystatechange事件,只支持onload事件. 如果 ...

  2. Docker安装MySQL

    查看镜像 docker search mysql 拉取镜像 docker pull mysql:5.7 说明:5.7为指定下载的版本,可以更换其他版本 运行镜像 docker run --name m ...

  3. python的扩展包requests的高级用法

    Python 标准库中的 urllib2 模块提供了你所需要的大多数 HTTP 功能,但是它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最 ...

  4. Network Architecture Search Survey

  5. C# 锁

    1.简介 锁是计算机协调多个进程或纯线程并发访问某一资源的机制.在数据库中,除传统的计算资源(CPU.RAM.I/O)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性 ...

  6. 使用CORS方式跨域

    什么是CORS CORS(Cross-Origin Resource Sharing 跨源资源共享),当一个请求url的协议.域名.端口三者之间任意一与当前页面地址不同即为跨域. ===前端 不需要携 ...

  7. 2017-2018-2 20165325 实验四《Android程序设计》实验报告

    一.Android程序设计-1 1.检查点要求 Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBIT,Java for Android ...

  8. 20165231 实验一 Java开发环境的熟悉

    实验报告封面 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:王杨鸿永 学号:20165231 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验时间:13:45 - 15:25 ...

  9. 结构数组新发现之直接初始化《leetcode-合并区间》

    leetcode有时候会要求一些奇怪(陌生)的数据形式,刷题因为数据形式卡住了真的很不好... 合并区间里定义了一个Interval的结构数组 struct Interval { int start; ...

  10. 计算机中内存、cache和寄存器之间的关系及区别

    1. 寄存器是中央处理器内的组成部份.寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令.数据和位址.在中央处理器的控制部件中,包含的寄存 器有指令寄存器(IR)和程序计数器(PC).在中央处理器 ...