【Java】jar解压后重新打成jar,不依靠开发工具

一.背景:

       参考了网上的经验和Java在dos中的语句,实现将jar包解压成文件夹修改其中配置文件,在不依靠开发工具的情况下重新打回jar包。

 

二.具体步骤

       1.如图所示,其他的是lib包,红色标注的是主jar包,也就是最后java -jar xx.jar运行的,首先先用随便的解压工具将server.jar解压出来。

这是解压出来的文件夹下的内容,编辑application.properties后准备打回jar包

   

        2.接下来准备输入将文件夹重新打成jar包命令,我们打开cmd窗口,cd 进入到server文件夹根目录下,在cmd里运行一下命令:

d:
cd workspace\server
jar cvfm server.jar META-INF/MANIFEST.MF com/ mapper/ static/ templates/ application.properties generatorConfig

    语句解释:   

   jar cvfm                      打包指令 

    server.jar                    新jar包的名字

    META-INF/MANIFEST.MF 主体编译文件,我个人猜测新jar包是以该文件中指向的各个类进行编译,将META-INF和里面文件放入新的server.jar中

    com/                          将com文件夹和里面所有文件放入新的server.jar中

    mapper/                     将mapper文件夹和里面所有文件放入新的server.jar中

    static/                         将static文件夹和里面所有文件放入新的server.jar中

    templates/                   将templates文件夹和里面所有文件放入新的server.jar中

    application.properties  将application.properties文件放入新的server.jar中

    generatorConfig          将generatorConfig文件放入新的server.jar中

    这里要根据实际根目录下的文件夹和文件写

 

        3.运行完后我们发现在原有根目录下会出现一个server.jar包,

    

        将新的server.jar替换掉原来的即可

 

三.后续优化

    如果要多次操作的话,建议将语句写入一个脚本文件里,如bat文件,省时省力一键打包。

 

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Java中,当将项目导出为JAR包时,静态文件通常无法直接通过下载获取到。这是因为JAR包是一种用于存储和分发Java文件和一些资源文件的压缩文件格式,它的目的是将所有的类文件和资源文件打包一个文件中,以方便在不同的环境中使用。 当使用JAR包时,通常会在代码中使用相对路径来访问文件。但是,JAR包中文件在运行时会被放置在一个类路径中,它们并不是一个独立的文件系统目录,因此无法通过常规的文件下载方式来访问。 如果您想要下载JAR包中的静态文件,您可以考虑以下几种方式: 1. 将静态文件JAR包中解压出来:您可以使用一些解压软件或命令行工具来解压JAR包,将其中的静态文件提取到指定的目录中。然后,您可以通过常规的文件下载方式来获取它们。 2. 将静态文件放置在JAR包外部:您可以将静态文件放置在与JAR包相同的目录下,或者与JAR包所在的服务器的任意其他可访问目录下。然后,您可以通过常规的文件访问方式来下载静态文件。 3. 使用类加载器加载静态文件:在Java中,您可以使用类加载器来获取JAR包中的资源文件。通过使用`ClassLoader.getResourceAsStream(String name)`方法,您可以获取到指定名称的资源文件的输入流。然后,您可以将输入流中的数据以文件形式输出,从而实现下载静态文件的功能。 总而言之,由于JAR包的特性,直接通过下载方式来获取其中的静态文件是不容易实现的。但是,通过适当的方法,您仍然可以获取到JAR包中的静态文件,并实现下载的功能。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值