jdk自带工具 如何把class 文件 打成jar包 命令

java面向对象:定义一个丈夫Husband类,有姓名、年龄、妻子属性定义一个妻子Wife类,有姓名、年龄、丈夫属性丈夫类中有一个getInfo方法,其中,能显示自己的姓名,年龄,和他的妻子的姓名 题目:定义一个丈夫Husband类,有姓名、年龄、妻子属性 定义一个妻子Wife类,有姓名、年龄、丈夫属性 丈夫类中有一个getInfo方法,其中,能显示自己的姓名,年龄,和他的妻子的姓名,年龄 妻子类中有一个getInfo方法,其中,能显示自己的姓名,年龄,和她的丈夫的姓名,年龄 定义一个测试类,创建妻子和丈夫对象,然后测试...... 阅读详情

打包根目录下面的文件: 

Java代码  复制代码
  1. jar cvf filename.jar a.class b.class  
Java代码   收藏代码
  1. <span style="color: #0000ff;">jar cvf filename.jar a.class b.class</span>  


--------------------------------------------------------------------------------------------------------------------------------------------
打包带package的文件: 

Java代码  复制代码
  1. jar cvf filename.jar foldername  
Java代码   收藏代码
  1. <span style="color: #0000ff;">jar cvf filename.jar foldername</span>  


或者 

Java代码  复制代码
  1. jar cvf filename.jar foldername\*  
Java代码   收藏代码
  1. <span style="color: #0000ff;">jar cvf filename.jar foldername\*</span>  


--------------------------------------------------------------------------------------------------------------------------------------------
打包可执行jar包: 
先配置manifest.mf文件,内容如下 

Java代码  复制代码
  1. Main-Class: com.TestBean   
  2. Class-Path: lib\classes12.jar  
Java代码   收藏代码
  1. <span style="color: #0000ff;">Main-Class: com.TestBean  
  2. Class-Path: lib\classes12.jar</span>  



Main-Class: com.TestBean 
指定入口函数,说明默认执行com.TestBean的main函数。 

Class-Path: lib\classes12.jar 
配置依赖jar包 

打包方法: 

Java代码  复制代码
  1. jar cvfm filename.jar manifest.mf *.class lib\classes12.jar  
Java代码   收藏代码
  1. <span style="color: #0000ff;">jar cvfm filename.jar manifest.mf *.class lib\classes12.jar</span>  



执行方法: 

Java代码  复制代码
  1. java -jar filename.jar  
Java代码   收藏代码
  1. <span style="color: #0000ff;">java -jar filename.jar</span>  


--------------------------------------------------------------------------------------------------------------------------------------------
eclipse下面有个jar打包的插件(附件是插件的下载) 

eclipse中右击项目选择"Build Fat Jar"根据提示就可以打包jar 

可以选择Main-Class,点击"Browse"选择jar的执行入口。 
--------------------------------------------------------------------------------------------------------------------------------------------
to be continue;

 

MANIFEST.MF文件可以把jar包里的main函数所在的类列出来.
如果执行该JAR包,会首先去找那个main(),如果没有就不能执行
只当把JAR包当成如RAR,ZIP一样的压缩文件

先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1.1或以上版本),看到什么:   

  用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...   

  选项:   

  -c 创建新的存档

  -t 列出存档内容的列表

  -x 展开存档中的命名的(或所有的〕文件

  -u 更新已存在的存档

  -v 生成详细输出到标准输出上

  -f 指定存档文件名

  -m 包含来自标明文件的标明信息

  -0 只存储方式;未用zip压缩格式

  -M 不产生所有项的清单(manifest〕文件

  -i 为指定的jar文件产生索引信息

  -C 改变到指定的目录,并且包含下列文件:  

  如果一个文件名是一个目录,它将被递归处理。   

  清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。   

  示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中:
 


  jar cvf classes.jar Foo.class Bar.class   

  示例2:用一个存在的清单(manifest)文件 'mymanifest' 将 foo/ 目录下的所有文件存档到一个名为 'classes.jar' 的存档文件中:


  jar cvfm classes.jar mymanifest -C foo/ .   

  来个小例子试试看:

  我们只有一个HelloWorld,如下:   


  public class HelloWorld{ 
  public static void main(String[ ] args){ 
  System.out.println("Hi, Hello World!"); 
  } 
  }   
  将这个java文件存到C盘跟目录下,ok,接下来,   

  在先前打开的命令提示符下(跳转到C盘提示符下),我们输入javac HelloWorld.java,然后继续输入:jar cvf hello.jar HelloWorld.class,回车后去你的C盘看看,多了什么,没错 hello.jar 。

  基本的步骤我们现在都知道了,你可以自己去尝试一下随着jar后面的参数的不同,结果有什么变化。    
  紧接着我们看看如何运行我们的jar包。   

  在进入正题之前,你要先打开我们刚刚做好的jar包看看,多了什么呢,META-INF目录?再看看里面是什么,还有一个MANIFEST.MF文件是不是?用文本编辑器(我这里是UltraEdit)打开它看看:


  Manifest-Version: 1.0 
  Created-By: 1.4.2 (Sun Microsystems Inc.)   

  就是这样。这里我们对它进行修改,加一句:Main-Class: HelloWorld (在第三行)。这个就是我们之前写的那个类,也就是我们的入口类。也即,


  Manifest-Version: 1.0 
  Created-By: 1.4.2 (Sun Microsystems Inc.) 
  Main-Class: HelloWorld  

  接下来,我们在命令提示符里执行:


  jar umf MANIFEST.MF app.jar  (应该是hello.jar吧) 

  这样我们使用了我们自己的MANIFEST.MF文件对原来默认的进行了更新。你不妨可以再进去看看是不是添上了Main-Class: HelloWorld这一句。    (是吗,我怎么没试出来,提示java.io.FileNotFoundException:MANIFEST.MF(系统找不到指定的文件)怎么回事?
)

Ok,这个最后的一步了,来验证我们做的一切,在命令提示符中输入:


  java -jar hello.jar(执行)   

  出现了什么, Hi, Hello World!

class文件打成jar包,并配置进Maven本地仓库使用                         xxx.class---&gt;&gt;&gt;xxx.jar---&gt;&gt;&gt;go to Maven ①如何将一个自己写的xxx.class文件打成jar包呢? JDK自带光环:以途中Xxx.calss为例 皮之不存毛将焉附?首先编写自己想要打成jar包的原材料=》Xxx.class,然后进入DOS命令行,进入Xxx.clas... 阅读详情

相关推荐

使用Jar命令进行Java打包与部署

Jar命令是Java开发工具包(JDK)中提供的一个命令行工具,用于创建、查看和管理Jar文件。它可以将多个Java类文件、资源文件和配置文件打包成一个单独的可执行Jar文件,方便我们进行部署和发布。本文介绍了Jar命令的基本用法,包括创建Jar文件、查看Jar文件内容、运行Jar文件和更新Jar文件。Jar命令是Java开发中非常重要的一个工具,它可以帮助我们将Java代码打包成可执行的Jar文件,并方便地进行部署和发布。希望本文对您在Java开发中使用Jar命令有所帮助。

CyberSparkZ的博客 281

java jar 打包命令

许久不用jar打包,现在连打包的命令都忘了…… 重新用google搜索了一下: 打包根目录下面的文件: Java代码 jar cvf filename.jar a.class b.class   jar cvf filename.jar a.class b.class ----------------------------------------------...

lishumingwm163com的博客 367

java打包成jar

java打包成jar有多种方法,有jar命令,有eclipse有相关操作,有制作完成的jar文件就是可执行的,文件有详细操作步骤

Java 的 Class Path 和 Package(转载)

发信人: SuperMMX (笑天子), 信区: Java标  题: [整理] Java 的 Class Path 和 Package发信站: BBS 水木清华站 (Mon Apr  9 08:15:01 2001)           Java 中的 ClassPath 和 Package前言:    由于这两个问题新手问得较多, 且回答比较零散, 很难统一整理, 所以就直接写了一篇, 还请大家

zebra007的专栏 1727

OpenCV+ArUco实战:如何用Python实现高精度二维码测距(附完整代码)

本文详细介绍了如何使用Python和OpenCV实现基于ArUco标签的高精度单目视觉测距。通过相机标定、标签检测和三维位置估算,结合完整代码示例,帮助开发者在机器人导航、工业自动化等场景中实现厘米级距离测量,并探讨了精度优化与三维可视化等进阶应用。

weixin_29052717的博客 478

Thompson Sampling vs UCB:5个真实业务场景下的算法选型指南

本文深入对比了Thompson Sampling与UCB算法在电商推荐、在线广告、医疗试验、金融定价和游戏调整五大真实业务场景下的表现。通过量化指标分析,为技术决策者提供了清晰的选型指南:Thompson Sampling凭借其概率匹配和贝叶斯框架,在需要快速收敛、处理冷启动及复杂约束的场景中通常更具优势;而UCB则在要求确定性、可解释性和理论保证的场景下表现更佳。

weixin_29181861的博客 153

Java JDK 常用工具命令 javac、jar、java、javaw,替换 .jar 包 class 文件,脚本启停 spring boot Jar 包服务

目录 javac.exe 编译 jar.exe 打包 java.exe 执行 javaw.exe 命令 javac.exe 编译 1、编写的 Java 源文件执行之前都需要使用 javac.exe 命令进行编译,即 *.java 编译成 *.class。 2、javac.exe 在 %JAVA_HOME%/bin 目录下,配置好环境变量后,命令行中可以直接运行。命令行中输入 java...

蚩尤后裔-汪茂雄 4954

5G(NR)物理层面试问答

1.什么是参数集(Numerologies)? 答:在5G中由于其频段很宽,设置了不同的子载波带宽,另根据频段、循环前缀、帧结构等组成了参数集。 2.5G中的循环前缀有几种? 答:5G网络支持5种子载波间隔,有两种循环前缀(正常和扩展)。其中:参数集2,即子载波间隔60kHz支持常规循环前缀和扩展循环前缀。 3.5G无线网络在下行(DL)和上行(UL)均使用OFDM波形? 答:5G网络下行链路(DL)和上行链路(UL)使用的波形及处理见下图: 4.5G物理层帧和子帧是多长时间? 答:5G.

starts1990的博客 2378

修改jar包中class文件

需求:银行跑批任务执行时要调用行方自己的短信平台给科技部人员发送短信,行方提供一个jar文件,通过shell脚本传参调用即可。 问题点:shell脚本调用jar包没太大问题,关键在于,需要在jar包中的某个类中配置短信平台的用户名、密码。 解决方案:将jar反编译—>保存为.java文件—>修改文件内容—>重新编译—>将原来jar包解压—>替换class文件—&g...

seven_flowers的博客 7363

双参数威布尔分布(Weibull分布)参数计算(根据故障数据,求双参数威布尔分布的参数详细步骤)

根据故障数据求威布尔分布参数步骤 根据众多文献研究,设备故障数据大多服从指数分布、威布尔分布或对数正态分布。其中威布尔分布较为常用,本文主要介绍威布尔分布的简单应用,并根据某设备故障数据为例简单介绍威布尔分布参数的计算方法。 参考文献11参考文献22 1.双参数威布尔分布的概率密度函数、概率分布函数、可靠度函数: 2.预处理故障数据 将故障数据按时间排序,假设设备分别在以下时间点失效:11.1 、23.5、58.4……则将此时间从小到大排序。并计算中位秩。中位秩的计算公式如下: 其中i表示第几个数据,n

biaochengxiaobai的博客 4万+

从入门到精通|Yalmip+Cplex在电力系统中的应用(Matlab代码实现)

​ 火电成本包括运行成本、碳捕集成本,其中火电运行成本由运行维护成 本和发电煤耗成本构成,发电煤耗与其出力关系: ,F 为机组煤耗量(kg/h),P 为机组出力/MW;运行维护成本按照 0.5 倍煤耗成本考虑,碳捕集成本取决于碳排放量及碳捕集单价,火电机组相关参数如附表 1 所示,电煤价格为 700 元/t ​

weixin_46039719的博客 1553

java 代码混淆 class字符串加密 jar包war包加密 支持一键混淆JDK1.8~21

本文介绍了针对Java程序反编译问题的字节码混淆加密软件。该软件通过离线部署方式实现机器绑定激活,支持对jar/zip包中的class文件进行混淆加密,并可进行二次加密增强效果。对于war包,需先提取class文件加密后再放回原位置。演示案例显示,加密后的代码难以被反编译工具识别,有效保护了Java程序的核心代码安全,尤其适用于需要高度保密的行业软件。软件操作流程包括上传文件、提交混淆、查看结果等步骤,并提供了注册激活和常见问题解答功能。

专注AI大模型,软件混淆,授权 1万+

手把手教你模拟登录豆瓣并爬取个人书影音数据:从Cookie解析到反爬攻防实战

在开始写代码之前,先明确我们需要的工具。:建议用3.10以上版本,方便使用一些新特性(如match语句)httpx:比requests更现代,支持HTTP/2,异步性能强,连接池复用好:解析HTML,语法简单,容错性强selenium:仅用于处理登录时的滑块验证(模拟真人)pandas:最终数据清洗和导出Excel/CSVretrying:自动重试机制,应对临时封禁:随机UA,降低特征lxml:作为BeautifulSoup的解析器,速度快为什么不只用requests?

2201_76125261的博客 578

简单的jar包解压class文件修改再编译成jar包

简单的jar包解压class文件修改再编译成jar包

qq_19342829的博客 3248

基于Simulink的PR(比例谐振)控制器在单相整流中的应用

本文详细介绍了基于Simulink的单相整流系统中PR(比例谐振)控制器的设计与实现方法。首先阐述了PR控制器相较于传统PI控制器的优势,能够有效消除交流信号跟踪中的稳态误差。接着系统讲解了PR控制器的传递函数原理、实用型设计(带带宽)及参数整定方法。通过Simulink建模步骤,包括主功率电路搭建、电压外环PI设计、电流指令生成、PR控制器实现(推荐MATLAB Function方法)和SPWM调制等关键环节。仿真对比显示PR控制在电流跟踪精度(THD仅1.9%)、功率因数(0.998)和动态响应(突变恢

amy_mhd的博客 691

WblockCloneObjects克隆一个图纸内的实体包括块参照,同名块参照的处理

public static void HeBingTu2(double lieJu, List<string> filePaths) { Document doc = Application.DocumentManager.MdiActiveDocument; Database db = doc.Database; using (DocumentLock docLock = doc.Lock...

1108

java mvn命令 指定jdk版本编译 查看class文件 jar包编译时的jdk版本

通过 pom.xml 文件配置指定编译时的jdk版本,可以使用 maven-compiler-plugin(不推荐)其实还可以更改maven的 setting.xml 文件,但是觉得太复杂了,还是修改 mvn.cmd 来得快。executable可以指定javac路径,但是个人觉得这样不好,毕竟分享你项目时,还要让别人改配置。查看jar包中的 META-INFMANIFEST.MF,Build-Jdk 属性就是JDK的版本。上述配置只能是建议使用某个版本进行编译,编译时校验一下jdk版本是否正确。

whatday的专栏 2676

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java怎么生成class文件_怎样将java的class文件生成jar包

首先,我们必须在电脑上安装JDK(java 开发工具包)。我们可以在官网上进行下载。2安装完成后,我们需要配置环境变量。我们将JDK的安装目录下的bin文件所在路径配置到环境变量的path变量中。3配置完成后,我们打开命令提示符窗口,输入“javac”,会提示如图所示信息。说明我们的java环境变量配置成功。4在D盘的java目录下创建一个haha.java文件(其他位置也是可以的)。并输入如下代...

weixin_29959491的博客 9652

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

linux替换war包中的class文件

最近遇到一个操作,替换war包中的某个class文件,然后再打成war包。记录一下操作流程。 要替换jar/war包中的class文件,首先就得知道怎么把包给解压开 (假设当前jdk所在目录为/usr/local/jdk1.8) 解压jar: /usr/local/jdk1.8/bin/jar -xvf xxx.jar (解压jar包到当前目录,要指定目录可以用 unzip xxx.jar ...

Fighting 3741

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

使用IDEA的反编译插件 反编译jar包/class文件/修改jar包

反编译插件介绍 安装IDEA后, 一般自带反编译插件, Java Bytecode Decompiler 如果没有可以自己安装下 1.首先找到插件的jar包, 在IDEA安装目录的plugins文件夹下 比如我的目录是: E:\IDEA\plugins\java-decompiler\lib\java-decompiler.jar 2.运行java命令, 指定插件的jar包目录和你要反编译的jar包目录还有生成反编译后jar包的目录 命令如下: java -cp “E:\IDEA\plugins\ja

chenyao的博客~ 1万+

获取jar包中jar包中的class

问题 上篇写了获取jar包中的class文件,在IDEA运行的好好的, 打个包丢服务器上就跑不了了。 原因就是打成jar包之后获取到的class文件路径变成/demo/xxx.jar!/WEB-INF/lib/yyy.jar!/com/demo/zzz.class了,在IDEA中只要读取yyy.jar中的class就行,现在要读取xxx.jar包中WEB-INF/lib下yyy.jar中的class文件, 所以今天再来说说获取jar包中的jar包中的class文件。 分析 一开始的想法是读取到的文件如果是j

_嗨哥的博客 4229

确定Java开发中.jar包的JDK版本

本文转载至:https://blog.youkuaiyun.com/weixin_34010949/article/details/85149908 1.查看.jar包中的META-INF\MANIFEST.MF 使用winrar等压缩软件打开.jar包,查看META-INF\MANIFEST.MF中的内容,Build-Jdk属性就是JDK的版本,比如: Build-Jdk: 1.8.0_91 说明其JDK版本为1.8.0_91。 但是,如果一个.jar文件中,如果没有这个字段,就必须通过下面一种方法来查看。 2.通过

zqj1172102457的博客 2862

修改jar包中class文件的内容

过程 1、打开jar包,反编译class文件 2、新建一个java文件,把反编译的内容复制过去(或是直接导出java文件)。 3、修改内容后,使用javac -cp命令重新编译成class文件 4、把新的class文件,替换jar包中的旧class文件,就可以了。 实际演示 例如:我想要修改mysql驱动包mysql-connector-java-6.0.6.jar中maxAllowPacket的默认值。 1、使用jad打开jar包,先找到class文件PropertyDefinitions

sumengnan的博客 4606

[IDEA插件] JarEditor 编辑jar包(直接新增、修改、删除jar包内的class文件)

IDEA插件 JarEditor 编辑jar包 直接新增、修改、删除jar包内的class文件

心流时间的博客 1万+

jar包 jdk 停_一文读懂jar包的小秘密

简介java程序员每天不是在创建jar包就是在创建jar包的路上,并且各种依赖引用都是以jar包的形式展示的。但是随着现代IDE的出现,我想很多程序员已经基本上很少直接和jar包打交道了。换句话说,他们已经不认识jar包了。那么jar包到底是什么呢?它有哪些小秘密呢?一起来看一下吧。jar包到底是什么jar包其实是一种zip格式的文件,所以说你实际上是可以使用zip相关的命令来对jar包...

weixin_42386361的博客 119
上一篇: Hibernate中自带ID生成策略中属性“ generator”的含义
下一篇: struts1 中DispatchAction 与action 的区别,以及DispatchAction的用法含义
dw_java08
博客等级 码龄15年 122粉丝 66原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值