目录:

  1. 利用java工具jar打包

    1. jar包无入口
    2. jar包有入口(即有main()函数),可以直接运行
      1. 运行jar包时候加载指定依赖其他jar支持包的目录
  2. 利用eclipse打包
    1. 打包 jar file
    2. 打包 runnable jar file
    3. Eclipse用Runnable JAR file方式打jar包,并用该jar包进行二次开发

  3. Java项目(jar包形式)指定端口启动服务
  4. 相关问题

一.利用java工具jar打包

主线:编译 - 打包 - 运行

  1. jar包无入口
  2. jar包有入口(即有main()函数),可以直接运行

1.jar包无入口,为了供其他开发者使用,而不用运行

直接打包即可

目录:

注意需要先将源文件编译

1.执行打包命令:

结果:

2.编写测试类,引入A.jar

package test;
import test.A;public class Test {public static void main(String[] args) {A a = new A();System.out.println(a.P(1, 3)); // 4}
}

3.解压jar包文件

可以看到打包后,多了一个MANIFEST.MF文件,这个文件很重要,在打包为入口的jar包时,需要用到,内容如下:

注意:可以看到最后两行是空行,所以我们新建MANIFEST.MF文件结尾也要有空行

4.如果直接运行A.jar,不能运行,想要可以运行可以修改A.jar中的MANIFEST.MF文件。

2.jar包有入口(即有main()函数),可以直接运行

1.新增MANIFEST.MF 文件内容 (名字任起,比如可以叫manifest,因为MANIFEST.MF 是打包后的默认名称,所以直接取MANIFEST.MF )

Manifest-Version: 1.0
Main-Class: test.A
Class-Path: lib/gson-2.8.7.jar lib/fastjson-1.2.73.jar

注意:

  1. 冒号后面加一个空格
  2. Main-Class: 包含main方法的类,Main-Class后面是类的全地址,比如你的主文件是A.java,文件里打包为package com.main; 那么这里就写com.main.A,不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误;
  3. Class-Path: 依赖的jar包的路径,如果依赖多个jar包,使用空格隔开
    路径:相对路径,jar包相对于helloworld.jar文件的路径
               绝对路径,jar包在操作系统中的路径
    常用相对路径,将依赖的jar包和自己的jar包放在同一级目录下,这样Class-Path直接写依赖jar包的名字即可。
    如上:
    我们的项目打包后为A.jar,那么按照上面的定义,应该在 A.jar的同层目录建立一个lib文件夹(即lib文件和打包的jar文件
    在同一个目录下),并将相关的jar包放在里面。否则将会出现“Exception in thread "main" java.lang.NoClassDefFoundError”的错误;
  4. 最后必须回车到新的空行,否则出错,如下面内容就必须在lib/fastjson-1.2.73.jar后面再输入一个回车

2.打包:

3.运行:

或者

如果在MANIFEST.MF 文件中没有指定Class-Path ,可以在运行的时候指定需要的依赖的jar包的路径

二.利用eclipse打包 【jar file与runnable jar file及区别】

打包 jar file

项目结构目录

package utils;public class Math {public static void main(String[] args) {System.out.println("starting... ");}public void P() {System.out.println(3.1413528);}
}

步骤1:准备主清单文件 “MANIFEST.MF”,程序打包时会用到。

步骤2:右键项目Export,打包 jar file

步骤3:

第3处需要注意:如果有需要依赖的第三方jar包放在lib目录下,那么打的jar包需要放在lib的同目录

这里有几个选项:

  1. * 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 把一些重构的信息文件也包含进去

步骤4:选择我们在第一步中自定义的配置文件路径,这一步很重要,不能采用默认选项。(如果我们没有依赖的第三方jar包,也不是一个可运行的jar包(即没有main()函数),那么这一步可以跳过,在上一步的时候就finish)

这里解释一下配置项:

* Generate the manifest file:是系统帮我们自动生成MANIFEST.MF文件,如果你的项目没有引用其他class-path,那可以选择这一项。
* Use existing mainfest from workspace:这是可以选择我们自定义的.MF文件,格式如上所写,引用了第三方包时选用。
* Seal content:要封装整个jar或者指定的包packet。
* Main class:这里可以选择你的程序入口,将来打包出来的jar就是你这个入口类的执行结果。

最后Finish,即生成了我们要的jar文件。

运行该jar文件有两种方式:

1. 在命令行下运行命令java -jar 你的jar文件名称,比如我的执行如下:

如果在jar中有一些System.out.prinln语句(如上执行结果),运行后不想在控制台输出而是保存在文件中方便以后查看,可以用一下命令:
java -jar pro1.jar > log.txt (这时命令行窗口不会有任何输出)
输出信息会被打印到log.txt中,当然log.txt自动生成,并位于和pro1.jar一个目录中。

2. 新建一个批处理文件,如start.bat,内容为:java -jar pro1.jar,放在jar文件同一目录下即可,以后点击自动运行即可,更加方便。

打包 runnable jar file

注意:library handling中

  • 第一个为提取extract需要的依赖的库或jar合成到jar 文件里;
  • 第二个则仅仅打包依赖库到jar文件;
  • 第三个则把依赖库放到一个文件夹中。

例如,项目需要引用的第三方外部jar如下

将项目分别用三种库处理方式,并导出,然后将各个jar解压便可对三种方式一目了然。

解压:

第一种方式:

第二种方式:

第三种方式:如解压图所示把依赖库放到一个文件夹中

运行即可

三.Java项目(jar包形式)指定端口启动服务

java -jar xxx.jar --server.port=80

四.相关问题

内容导航:

Q1:java项目打包成jar不能访问图片问题

一、通过使用外部资源文件的方式解决

把项目打包生成Jar后,再新建一文件夹,把项目中所有使用的图片文件和生成Jar文件放在该目录下,只要代码对图片文件的引用路径正确,如:ImageIcon image=new ImageIcon(SwingResourceManager.getImage("imagefilePath"));就可以了。

这种方式下,图片文件与类文件不是一块放在包中的,类文件在包中,而图片文件在项目根目录下。

二、通过使用内部资源文件的方式解决

把所用的图片文件放在项目使用的包中,打包时把图片文件同时打进Jar文件中。这种方式在具体代码中应使用下面其中一种:

1.ImageIcon image = new ImageIcon(this.getClass().getResource("imagefilePath"));

2.ImageIcon image = new ImageIcon(main.class.getResource("imagefilePath"));

3.ImageIcon = SwingResourceManager.getImage(main.class,"imagefilePath");

4.3.ImageIcon = SwingResourceManager.getImage(this.getClass(),"imagefilePath");

3和4中第一个参数代表图片文件路径的参照对象,不能少,否则不能正确获得图片资源。 最后,朋友们一定要注意大小写的问题,在项目中文件名的大小写没有影响,但是打包后,就必须注意文件名大小写问题了,否则也是不行的。

Q2:我在Eclipse中将一个java项目打包成jar文件后,为什么双击它时没反应?但在eclipse中是可以运行的

jar 文件要在命令行里运行,开始->运行(XP)/在搜索程序和文件对话框里->里输入cmd->在弹出的cmd框中键入:java -jar 你的JAR文件完整路径和名称.jar-> 回车,就可以运行了。

普通双击是没用的(并没关联到 java 并以-jar参数运行),甚至常常被当做一个类似rar的包打开。

Q3:如何将一个Java项目打包打成多个Jar包

eclipse和Myeclispe的导出功能 都是可以支持在同一个项目内 分包打成jar的 由于程序本身是有依赖关系的 所以分包的jar也是要相互支持才行。至于想复用可以做一些公共的功能包打成jar,反复使用也是可以做到的。

wwW.YijIt:ao.com

Q4:如何用myeclipse导出Java项目(含外部jar包)

右击项目,单击export=》java=》选第三个Runnable Jar file (可执行的jar文件),Next,

选择launch configuration(程序入口配置),Exportdestination(导出目标)

Library handing:

选择第一个 引用的jar包会整合到项目中去。

选择第二个 引用的jar包会单独放在项目根目录下。

选择第三个 引用的jar包会单独放在一个文件夹下,这个文件夹和导出的jar放在同一目录下,

finish。

Q5:如何将带包的java项目文件打包成jar

是jar.exe

要如何建立Jar文件呢?只要使用JDK提供的Java的文件包工具,就是jar.exe,这个就可以将Java程序打包成一个jar文件了。其实就是一个压缩包形式的。

这个jar和JDK中的java或者javac 的用法差不多。

呵呵,以我的为例,我的JDK的安装路径是:D:\Program Files\Java\jdk1.5.0_12\bin

所以你想详细的查看jar怎么用就可以在命令提示符中输入:

D:\>cd Program Files\Java\jdk1.5.0_12\bin\jar

这样你就可以查看jar的使用了。

希望可以帮到你!

Q6:java项目怎么打成可运行的jar包

1、jar包有入口(即有main()函数)

选中要打包的工程--->右键选择Export---->java----->Runnable java file----->next---->在launch configuration输入jar包入口,即该工程要打包的主函数文件----->Export destination输入jar包存放的位置以及文件名---->library handling选择package requreied....JAR---->finish。

2、jar包无入口

选中要打包的工程->右键选择Export---->java----->java file----->next----->Exported all output folders for checked project----->Export destination输入jar包存放的位置以及文件名---->finish。

JAVA-打包成jar包相关推荐

  1. java打包拆包_[Java] Java 打包成jar包 和 解压jar包

    解压jar包 jar xf xxx.jar 打包成jar包 方法一:通过jar命令 jar命令的用法: 下面是jar命令的帮助说明: 用法:jar {ctxui}[vfm0Me] [jar-file] ...

  2. linux java jar打包_【Java】Java程序打包成jar包在Linux上运行

    当需要把在Windows上开发的Java程序用在Linux上运行时,就需要吧该Java程序打包成jar包上传到Linux上去运行. 1.Java程序用MyEclipse打包成可运行的jar包 (1)在 ...

  3. idea中将java项目中的单个类打包成jar包

    文章目录 打包jar包 导入jar包使用 JAR文件的全称是Java Archive File,即Java档案文件.JAR文件是一种压缩文件,与常见的ZIP压缩文件兼容,被称为JAR包.JAR文件与z ...

  4. java打包成jar|执行jar包中的main方法

    java打包成jar jar -cvf [jar包的名字] [需要打包的文件] 执行jar包中的main方法 java -jar ****.jar 执行后总是运行指定的主方法,如果 jar 中有多个 ...

  5. java 中如何打包成 jar 包

    这里写目录标题 1. java 中如何打包成 jar 包 1.1. 手动打包可直接执行的 jar 包 1.2. 使用 intellij idea 工具打包可直接执行的 jar 包 1. java 中如 ...

  6. IDEA下maven编译打包Java项目成jar包但是resource下配置文件打包不成功

    今天在IDEA下打包一个Java项目,准备打包成jar包直接执行,打包之后运行时候一直提示resource下资源文件找不到,但我又确实配置了的,而且在IDEA上可以运行,但是打包成jar包之后就运行不 ...

  7. 问题备忘: 将工程打包成jar包运行,就报java.io.FileNotFoundException: class path resource错误

    最近在在使用@Value注入文件碰到如下问题: 工程在在IntelliJ IDEA开发环境里正常运行,但是一旦将工程打包成jar包运行,就报java.io.FileNotFoundException: ...

  8. java maven 打包jar_maven项目如何打jar包?eclipse将maven项目打包成jar包方法

    下面的内容是要给大家介绍eclipse将maven项目打包成jar包的方法,一起来看看整个过程是怎样的吧,希望对你的编程之路可以有所帮助哦. 利用eclipse把项目打包成jar,放入服务器执行. 1 ...

  9. [JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目

    (1)项目导入JAR包: 1.在项目目录里建立一个libs目录,将外部jar包拷贝在里面. 2.右键点击项目,Bulid Path->Configure Build Path 3.在设置Libr ...

  10. 在IDEA中将SpringBoot项目打包成jar包的方法 不要用 在上面有可以用的

    在IDEA中将SpringBoot项目打包成jar包的方法 2018年03月07日 10:43:52 叶叶叶叶大爷 阅读数 71375 版权声明: https://blog.csdn.net/qq_3 ...

最新文章

  1. 南方科技大学唐圆圆组招聘环境相关领域科研人才(年薪33~50万)
  2. 解析EXCEL CSV格式文件的方法
  3. 【PHP】最详细PHP从入门到精通(二)——PHP中的函数
  4. 【C语言简单说】二:第一个C语言程序详解(3)
  5. EXTASPNET C# ASP.NET sql server 调用存储过程超时,解决方法
  6. 九度 题目1183:守形数----------------我用的方法自创
  7. jQuery双击编辑td数据
  8. Atitit.视频文件加密的方法大的总结 java c# php
  9. android 二进制编辑器,二进制编辑器
  10. 按键精灵手机助手之以图找图
  11. 淘宝降价补差价规则是什么?有哪些规则?
  12. elasticsearch 使用词干提取器处理英语语言
  13. 三进制 四进制计算机原理,三进制计算机(中国三进制计算机)
  14. LoRa节点开发:9、LoRaWAN在各个国家或地区可使用的频段列表
  15. 某银行无线网络频繁掉线重认证分析、解决方案及抓包经验分享
  16. 网页短信平台国际通道搭建|后台定制-移讯云短信系统
  17. 2019年中国PPP管理库全项目数据
  18. Android检测网络状态监听网络变化
  19. 跨境12V汽车一键启动PKE无钥匙进入遥控远程启动系统改装
  20. python 根据word生成ppt_python 生成 word、ppt 操作源码分享

热门文章

  1. ProxmoxVE 6.4-13(PVE) 开启SR-IOV INTEL I350-T4 手把手教程
  2. 技术部团队及英文简称
  3. Generative Adversarial Nets 生成对抗网络
  4. 模拟QQ音乐微信登录界面
  5. 从零开始——在Ubuntu22.04系统中部署KubeEdge架构
  6. GPU大百科全书 第一章:美女 方程与几何
  7. 如何在同一个局域网内实现简单的两台Linux主机互相连接
  8. torch01:torch基础
  9. 用scrapy+selenium + phantomjs 爬取vip网页,保存为json格式,写入到mysql数据库,下载图片(二)
  10. matlab潮流计算求节点自导纳,大神们,求个电力系统潮流计算的matlab程序。