Java如何实现将类文件打包为jar包

目录
  • 将类文件打包为jar包
    • 1.写类文件
    • 2.编译
    • 3.测试
    • 4.打jar包
  • jar包应该怎么打?
    • 1.首先确保你的项目
    • 2.选中你的项目,点右键
    • 3.选择runnable jar file
    • 4.如下图,直接看图
    • 5.然后点finish

将类文件打包为jar包

为实际项目写了一个工具类,但是每次使用时都需要打开项目点击运行。突然想,不如将这个类打成jar包这样后续就可以直接运行了。

说做就做。

1.写类文件

大概就这么个样子。

注意,这里用到了外部依赖,也就是为什么要写这篇文章的原因。

本例中的外部依赖包为:commons-codec-1.14.jar

2.编译

javac -encoding UTF-8 -classpath .;./commons-codec-1.14.jar -d . CipherTest.java

或者:

javac -encoding UTF-8 -cp .;./commons-codec-1.14.jar -d . CipherTest.java

  • encoding 防止中文乱码
  • -classpath 指定class文件路径
  • -d . 会在当前执行目录下生成 一个java所在的包名的(这里我的是test)目录,以及编译后的class文件
  • 指定要被编译的java文件

这样就编译为class文件了

3.测试

java -cp .;commons-codec-1.14.jar CipherTest 11 22 33

  • -cp 指定依赖包,多个用;分割
  • CipherTest: 是运行的主类,后面跟着命令行参数

这样测试就通过了。

4.打jar包

jar -cvf cipher.jar CipherTest.class

执行运行,发现找不到主类。解压查看jar包内容如下:

进入META-INF查看文件:

接下来对这个文件进行处理:

添加字段:

添加:

Main-Class: CipherTest

注意冒号后面有个空格,这个是指定主类,即启动类。

Class-Path: commons-codec-1.14.jar

指定依赖包,默认jar包根目录,有多个依赖的话,Windows用;分隔。Linux用空格分隔。

之后将依赖包拖入jar包。

最终目录结构:

最后运行jar包,正常工作。

jar包应该怎么打?

1.首先确保你的项目

能正常启动并运行

2.选中你的项目,点右键

选export(导出),如下图:

3.选择runnable jar file

下一步,如下图:

4.如下图,直接看图

5.然后点finish

后面一路过,不用管警告,一直点OK!

执行完这5步,在自己上面选择的路径下面就会有相应的jar包生成,如下图:

下面,我们来详细说明一下两种打jar包的方式有什么区别

首先,用自己的压缩工具打开刚才打成的jar包,可以看到一个MANIFEST.MF文件,如下图:

打开它之后的部分信息如下:

可以看到,这种方式把引用的jar包和自己的jar包都混合到了一起!(把需要的jar包和库提取到jar里)

再看另一种方式:

这种方式打成jar包后如下图:(将需要的jar包和库提取到子目录中)

两种方式都能正常启动,只是方式不一样!!!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 把Java程序打包成jar文件包并执行的方法

    本文介绍了把Java程序打包成jar文件包并执行的方法,分享给大家,具体如下: 1.首先要确认自己写的程序有没有报错. 2.第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建的是java Project 打包步骤: 1.在项目上,右键,选择Export. 2.进入到下图界面,选择Java 下面的JAR file 3.选择项目,确认必要的文件是否选中,选择保存jar文件包的路径,如下图 4.完成步骤3之后,点击Next,进入如下图界面: 5.直接点Next,进入下面的界面

  • 将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("HelloWo

  • java打jar包的几种方式详解

    一.制作只含有字节码文件的jar包 我们先来看只含有字节码文件,即只含有class文件的jar包怎么制作,这是最简单的形式 1.最简单的jar包--直接输出hello 最终生成的jar包结构 META-INF Hello.class 方法步骤 (1)用记事本写一个Hello.java的文件 class Hello{     public static void main(String[] agrs){         System.out.println("hello");     }

  • Java如何实现将类文件打包为jar包

    目录 将类文件打包为jar包 1.写类文件 2.编译 3.测试 4.打jar包 jar包应该怎么打? 1.首先确保你的项目 2.选中你的项目,点右键 3.选择runnable jar file 4.如下图,直接看图 5.然后点finish 将类文件打包为jar包 为实际项目写了一个工具类,但是每次使用时都需要打开项目点击运行.突然想,不如将这个类打成jar包这样后续就可以直接运行了. 说做就做. 1.写类文件 大概就这么个样子. 注意,这里用到了外部依赖,也就是为什么要写这篇文章的原因. 本例中

  • JAVA 根据Url把多文件打包成ZIP下载实例

    压缩文件代码工具类: public class UrlFilesToZip { private static final Logger logger = LoggerFactory.getLogger(UrlFilesToZip.class); //根据文件链接把文件下载下来并且转成字节码 public byte[] getImageFromURL(String urlPath) { byte[] data = null; InputStream is = null; HttpURLConnec

  • 在idea中将java项目中的单个类打包成jar包操作

    JAR文件的全称是Java Archive File,即Java档案文件.JAR文件是一种压缩文件,与常见的ZIP压缩文件兼容,被称为JAR包. JAR文件与zip文件的主要区别是在JAR文件中默认包含了一个名为META-INF/MANIFEST.MF的清单文件,这个清单文件是在生成JAR文件时系统自动创建的. 打包jar包 1.先创建一个要打包成jar包的类 2.File -> Project Structrue -> Artifacts -> + -> JAR -> fr

  • 解析Java和IDEA中的文件打包问题

    问题:想在IDEA中引用相对路径,但是找不到文件. 项目目录结构 当前项目的路径为:D:\source\java\test\ 项目结构如下 当前路径 面对无法使用相对路径找到资源文件的问题,首先想到的解决办法是先瞄一眼IDEA在执行时给Java环境设定的当前路径在哪,也就是说看看我们在使用相对路径时到底是相对于哪里的. 应该咋写呢?下面是Java API中的一些描述. 默认情况下, java.io包中的类始终会根据当前用户目录解析相对路径名. 该目录由系统属性user.dir ,通常是调用Jav

  • 使用Java 压缩文件打包tar.gz 包的详细教程

    一.背景 最近,小哈主要在负责日志中台的开发工作, 等等,啥是日志中台? 俺只知道中台概念,这段时间的确很火,但是日志中台又是用来干啥的? 这里小哈尽量地通俗的说下日志中台的职责,再说日志中台之前,我们先扯点别的? 相信大家对集中式日志平台 ELK 都知道一些,生产环境中, 稍复杂的架构,服务一般都是集群部署,这样,日志就会分散在每台服务器上,一旦发生问题,想要查看日志就会非常繁琐,你需要登录每台服务器找日志,因为你不确定请求被打到哪个节点上.另外,任由开发人员登录服务器查看日志本身就存在安全隐

  • 详解如何把cmd黑窗口把java文件打包成jar

    先通过idea或者eclipse也或者cmd把后缀java编译成class文件 编译好的class文件,找到本地目录,运行cmd 输入:jar cvf 要打包的名称.jar 要打包的名称.class 如下图所示: 在讲个例子,比如我用到了定时清除文件的单机程序 在每天九点删除本地下载目录下的文件,要怎么实现呢? 请看下面 定时执行main方法删除目录下文件代码如下: import java.io.File; import java.util.Calendar; import java.util.

  • Java打包工具jar包详解

    Java打包工具是Java开发工具中比较常用的一种,代码重新打包工具jarjar可以帮助你将其它用到的java库打包并嵌入到你自己的项目jar包中.这样做的原因有: 当你发布项目的时候,把用到的库打包进现有项目jar包,可以让发布的这个jar包不比依赖于其它项目的jar包; 当你所用到的java库升级了以后,它所新发布的jar包可能和你现存的项目不匹配,为了保持项目的代码稳定性,你可以把编写代码时所用到的依赖jar包,全部打包进现在的项目jar包,以避免出现这个问题. jarjar可以通过Ant

  • 如何将java或javaweb项目打包为jar包或war包

    目录 一.为什么打包 二.如何打包 1.打成jar包 1.1.使用jar手动打包 1. 2.使用IDEA进行打包 2.打成war包 一.为什么打包 关于此问题,网上众说纷纭.结合个人理解以及网上说法,打成jar包是为了方便别人使用. 如果是运行java程序,就不需要在寻找包含main方法的类去执行:如果是使用第三方jar包,直接在自己项目中导入jar包,而不是复制一堆类文件.打成war包是真实生产环境选择的web应用部署方式,网上说这样不会像直接复制文件夹那样可能造成文件丢失,而且服务器会对应用

  • Android打包篇:Android Studio将代码打包成jar包教程

    一.新建一个as项目,再新建一个model模块 然后再app中的build.gradle中添加model的依赖.然后编译项目. 二.编译完成后,打开model下的build--intermediates--bundles目录,目录下有两个文件夹,debug,default,在default文件夹下有一个classess.jar,就是编译完成的jar包, 这里需要主要的是:因为我们使用的 as 版本不一致,所以会导致classess.jar包的目录页会不一样,不过最终的目录还是在build--in

  • spring打包到jar包的问题解决

    今天把spring打包到一个jar包中,jar运行时抛异常 Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 5 in XML document from class path resource [spring.xml] is invalid; nested exception is org.xml.sax.SAXParseExce

随机推荐