首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将javac.classpath中引用的每个jar解压到一个文件夹中?

将javac.classpath中引用的每个jar解压到一个文件夹中,可以通过以下步骤实现:

  1. 首先,需要获取javac.classpath中引用的所有jar文件路径。可以通过命令行或脚本获取,例如在Windows系统中可以使用以下命令获取:
代码语言:txt
复制
echo %CLASSPATH%

在Linux或Mac系统中可以使用以下命令获取:

代码语言:txt
复制
echo $CLASSPATH
  1. 将获取到的CLASSPATH字符串按照路径分隔符(Windows为分号,Linux和Mac为冒号)进行拆分,得到每个jar文件的路径。
  2. 遍历每个jar文件路径,使用压缩工具(如7-Zip、WinRAR等)或Java代码进行解压。以下是使用Java代码进行解压的示例:
代码语言:txt
复制
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;

public class JarExtractor {
    public static void main(String[] args) {
        String classpath = System.getProperty("java.class.path");
        String[] jarPaths = classpath.split(File.pathSeparator);
        String outputFolder = "output"; // 解压输出文件夹路径

        for (String jarPath : jarPaths) {
            if (jarPath.endsWith(".jar")) {
                try {
                    JarFile jarFile = new JarFile(jarPath);
                    Enumeration<JarEntry> entries = jarFile.entries();

                    while (entries.hasMoreElements()) {
                        JarEntry entry = entries.nextElement();
                        String entryName = entry.getName();

                        if (!entry.isDirectory()) {
                            File outputFile = new File(outputFolder + File.separator + entryName);
                            outputFile.getParentFile().mkdirs();

                            InputStream inputStream = jarFile.getInputStream(entry);
                            FileOutputStream outputStream = new FileOutputStream(outputFile);

                            byte[] buffer = new byte[4096];
                            int bytesRead;

                            while ((bytesRead = inputStream.read(buffer)) != -1) {
                                outputStream.write(buffer, 0, bytesRead);
                            }

                            outputStream.close();
                            inputStream.close();
                        }
                    }

                    jarFile.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

以上代码会将每个jar文件中的内容解压到指定的输出文件夹中(示例中为"output"文件夹)。可以根据实际需求修改输出文件夹路径。

  1. 运行上述Java代码,即可将javac.classpath中引用的每个jar解压到指定的文件夹中。

需要注意的是,以上代码只是一个示例,实际使用时可能需要根据具体情况进行适当的修改和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

问与答93:如何将工作簿引用文件全部复制并汇总到指定文件夹

Q:我在做一个非常巨大数据,一个主工作簿,还有非常多个被引用数据工作簿散布在计算机很多位置。...因为很多数据是临时来,时间一长,我已经搞不清到底引用了哪些工作簿,有没有办法自动把相关工作簿打包在一起? A:这只能使用VBA来解决了。...例如下图1所示,在工作簿工作表Sheet1有几个单元格分别引用了不同位置工作簿数据,我们要把引用这几个工作簿复制到该工作簿所在文件夹。 ?...String Dim iPos2 As Integer Dim strPath As String Dim strFile As String '设置工作表且将该工作表公式单元格赋给变量...'则将文件复制到当前文件夹 If strPath "" AndstrFile "" And strPath ThisWorkbook.Path &"\

2.4K30
  • 如何解压war包_tomcat自动解压war包

    使用WinRAR即可解压,同目录下创建一个.zip文件,右键打开方式->WinRAR压缩文件管理器 “向上”,到文件目录 选择要解压文件,点击“解压到”,解压到你想要目录即可 java war格式压缩包怎么解压...直接在360安全卫士软件里有一个软件管家,这里面就可以下载,里面挺全,希望可以帮到您 解压war包 linux 测试POST linux解压war包命令 网上很多人说用jar包解压,但jar命令解压时不能指定目录...-P 使 用zip密码选项。 -q 执 行时不显示任何信息。 -s 将 文件名空白字符转换为底线字符。 -V 保 留VMS文件版本信 息。 -X 压缩时同时回存文件原来UID/GID。...jar -xvf game.war 解压到当前目录 下载War3压缩包怎么正确安装解压啊 在这个界面上 你可以点击选项栏“解压到”选项,然后选择需要存取文件夹 但这样解压是上述程序一个一个解压出来...整理起来比较麻烦 你可以不用打开压缩包文件,在rar文件也就是压缩包上点右键,就有解压到,点击以后选择文件夹解压,这样解压出来应该会是魔兽争霸1.24E文件夹,打开文件夹就有上述程序 版权声明:本文内容由互联网用户自发贡献

    3.2K10

    最详细Maven安装及配置

    引用” 这个文件,并不需要重复复制到工程。...3、原来项目中一个 jar 包所依赖其他 jar 包必须手动导进来,而 Maven 会自动将被依赖 jar 包导进来。...下载 找到Files这个标题 # 3.2 安装配置 Maven 把刚刚下载完成zip包解压到本地文件夹,理论上是任意一个文件夹都可以,但是这边建议还是不要出现在中文文件夹下面,以免出现各种问题!...# 3.3 配置 maven 本地仓库 如何将下载 jar 文件存储到我们指定仓库呢?...任何一个构件都必须明确定义自己坐标,这是 Maven 强制要求,任何构件都不能例外。我们在开发 Maven 项目时,也需要为其定义合适坐标,只有定义了坐标,其他项目才能引用该项目生成构件。

    1.3K20

    Windows系统上Eclipse配置JSP开发环境

    我新建了一个JspEclipse文件夹,解压到文件夹如图所示: [image] 首先进行汉化 语言包下载 下载后新建一个eclipse_plugins文件夹,解压到文件夹下,创建这个文件夹目的是把所有下载插件都保存到这里...,便于管理 目录层次如图所示,language下有eclipse,eclipse下有features和plugins文件夹 [image] 在原先JspEclipse下eclipse文件夹下新建一个...links文件夹,再新建文本文件,扩展名为link,内容如图所示: [image] 这样汉化就完成了 三、配置lomboz 下载地址 同样下载解压到原先创建eclipse_plugins文件夹下...,如图所示: [image] 同上在原先JspEclipse下eclipse文件夹下新建一个links文件夹,再新建文本文件,扩展名为link,内容如图所示: [image] 这样lomboz...6.0\apache-tomcat-6.0.29 2,新建变量名:CATALINA_HOME,变量值:D:\tomcat 6.0\apache-tomcat-6.0.29 【1和2路径根据你存放目录不同而不同

    2.8K00

    Appium+TestNG自动化测试环境搭建(Java版)

    解压Maven安装包; 在上述地址中下载最新Maven版本,解压到指定目录(此处根据自己需要),解压到了D:\android_develop\Appium\apache-maven-3.5.4目录下...\repository),如果想重新定义这个目录位置就需要修改Maven本地仓库配置; 修改位置:在maven解压缩文件路径下新建一个repository文件夹      D:\android_develop...开发,为了保证编译通过,我们会到处去寻找jar包,当编译通过了,运行时候,却发现"ClassNotFoundException",难道还差jar包?再去找找吧!...每个Java项目的目录结构都没有一个统一标准,配置文件到处都是,单元测试代码到底应该放在那里也没有一个权威规范。...这样创建任一类型工程出错时只用下载对应jar安装就好了,可以一劳永逸了! 后期我们会根据每个维度陆续写相关测试文章,如果你有兴趣,请关注我们哦。 ---- ?

    2.8K41

    配置Hanlp自然语言处理进阶

    封面.jpg 中文分词 中文分词中有众多分词工具,如结巴、hanlp、盘古分词器、庖丁牛分词等;其中庖丁牛分词仅仅支持java,分词是HanLP最基础功能,HanLP实现了许多种分词算法,每个分词器都支持特定配置...接下来我将介绍如何配置Hanlp来开启自然语言处理之旅,每个工具包都是一个非常强大算法集合,所以小编以后将花一些时间去看看里面源码如何。...下载jar、property和data文件 下载jar文件,(下载hanlp压缩包)解压之后获得jar和property文件如下: 图1.jpg 其中property问配置文件,jar文件为外部引用文件...配置hanlp 新建一个空项目,包括一个新建java文件test.java, 1.package com; 2.import com.hankcs.hanlp.HanLP; 3.public class.../java 就比如我解压后data文件夹是放在D:/ideaWorkSpace/hanlp_mavenHanlp/src/main/java目录下那我就改这个就可以了,其余配置不用修改 运行成功如下图

    97730

    Android 系统预设 App,有什么难

    platform:该 APK 完成一些系统核心功能。经过对系统存在文件夹访问测试, 这种方式编译出来 APK 所在进程 UID 为 system,可以参见 Settings。...:= AndroidUtil:libs/AndroidUtil.jar 这行代码意思大概可以理解成这样,声明一个变量 AndroidUtil,它 value 是 libs/AndroidUtil.jar...在 Android Studio Gradle 方式通过 implementation 方式加载三方库,并没有下载 jar 文件放到 libs 文件夹下啊,该如何集成?...其实 jar 包有被下载到项目的 External Libraries 目录下,找到引用 jar 包,点右键 Show in Files,就能得到了 jar文件地址,然后把它拷到 libs 文件夹下...另外在 External Libraries 目录还能看到隐藏 jar,比如 retrofit,其实它有引用 okhttp,okhttp 又引用了 okio,这些也是需要,一并拷到 libs 文件夹

    2.3K00

    Android 系统预设 App,有什么难

    platform:该 APK 完成一些系统核心功能。经过对系统存在文件夹访问测试, 这种方式编译出来 APK 所在进程 UID 为 system,可以参见 Settings。...:= AndroidUtil:libs/AndroidUtil.jar 这行代码意思大概可以理解成这样,声明一个变量 AndroidUtil,它 value 是 libs/AndroidUtil.jar...在 Android Studio Gradle 方式通过 implementation 方式加载三方库,并没有下载 jar 文件放到 libs 文件夹下啊,该如何集成?...其实 jar 包有被下载到项目的 External Libraries 目录下,找到引用 jar 包,点右键 Show in Files,就能得到了 jar文件地址,然后把它拷到 libs 文件夹下...另外在 External Libraries 目录还能看到隐藏 jar,比如 retrofit,其实它有引用 okhttp,okhttp 又引用了 okio,这些也是需要,一并拷到 libs 文件夹

    5.2K22

    搭建大型源码阅读环境——使用 OpenGrok

    表示单个字符 在搜索结果展示匹配行 一个 Web 只读版版本历史查看界面 文件修改日志 文件在两个版本间 diff 文件夹历史记录 带语法高亮交叉引用显示...下载 OpenGrok 最新包,比如 opengrok-0.13-rc4.zip,解压到一个目录,如 D:\Programs\opengrok-0.13-rc4。...可以让 OpenGrok 认为 source root 下每个文件夹一个项目,所以我们利用这个特性来配置和阅读多个项目源码就好了。.../to/configuration.xml -P 表示为 source root 目录下每个一级子目录生成一个工程。...后来才发现建一个专用 source root,然后把各种项目源码根目录软链接过来,让 OpenGrok 为 source root 下每个 symbol 一级子目录建立一个项目才是正确使用方法。

    3.1K20

    dubbo-admin安装

    目录 1、环境准备 2、下载 Dubbo-Admin 3、把下载zip包解压到指定文件夹(解压到那个文件夹随意) 4、修改配置文件 5、打包项目 6、启动后端 7、启动前端 8、访问 9、简单使用...---- 1、环境准备 dubbo-admin 是一个前后端分离项目。...包解压到指定文件夹(解压到那个文件夹随意) 4、修改配置文件 解压后我们进入…\dubbo-admin-develop\dubbo-admin-server\src\main\resources目录,...java -jar .\dubbo-admin-0.1.jar 7、启动前端 dubbo-admin-ui 目录下执行命令 npm run dev 8、访问 浏览器输入。...用户名密码都是root http://localhost:8081/ 9、简单使用 在上面的步骤,我们已经进入了Dubbo-Admin主界面,在【快速入门】章节,我们定义了服务生产者、和服务消费者

    75510

    常见Linux命令正确打开姿势 实践笔记 更新

    常见Linux命令正确打开姿势 实践笔记 更新 我使用centos7X64最小化安装 CentOS-7-x86_64-Minimal-1708 1.vim: 1.vim跳到第一行和最后一行 1....底线命令模式 2.命令模式 2.vim清空内容 1.底线命令模式 2.命令模式 2.解压war包 1.jar 解压 war包,直接解压到当前目录 2.unzip 解压 war包,带参数-d 解压到...test目录下 3.解压缩.tar.gz使用 1.压缩 test.java文件为test.tar.gz (test.java可以是文件夹) 2.解压test.tar.gz 我使用centos7X64最小化安装...shift+g跳到文件最后一行 2.vim清空内容 1.底线命令模式 %d 即可 2.命令模式 ggdG 即可 其中,gg为跳转到文件首行;dG为删除光标所在行以及其下所有行内容; 再细讲,...d为删除,G为跳转到文件末尾行;也可单独使用dG删除当前行到底部 2.解压war包 1.jar 解压 war包,直接解压到当前目录 jar –xvf test.war 2.unzip 解压 war包

    1.6K21

    利用IDEA查看和修改spark源码

    那个,解压到随便某个文件夹后,在IDEA里,File->Project Structure最右边那一栏,上边绿加号 ?...点了之后,找到你那个源码文件,确定,等一等,就可以点ctrl时候看到源代码了。 修改源码 老规矩先上教程:戳这里 现在使用教程方法下载源码然后利用下载源码里maven工具进行编译。...idea里把整个jars文件夹加入到你Libraries里也不影响运行。...这里最影响运行,就是scala版本问题,如果你jars文件夹是在scala2.11这个文件夹,那你scalaSDK如果不是2.11那你无论如何是编译不成功,所以这一点巨坑。...,假想有一个 2 * 2 正方形,我要在里面画一个圆(r = 1), * 假想有一个点随机扔到正方形(假设有 N 次),那么恰好也在圆次数为(C),如果 N 足够大,那么 C/N 逼近于

    2.1K90

    Matrix-ApkChecker — Apk 分析减包利器

    检查是否包含多个ABI版本动态库 so 文件大小可能会在 apk 文件大小占很大比例,可以考虑在 apk 只包含一个 ABI 版本动态库 7....搜索 apk 未经裁剪动态库文件 动态库经过裁剪之后,文件大小通常会减小很多 示例分析 下面,我们对一个示例 apk 使用 Matrix-ApkChecker 进行检查,并根据检查结果进行针对性减包优化...MultiLibCheckTask 可以判断 apk 是否有针对多个 ABI so 实现方法:直接判断 lib 文件夹下是否包含多个目录。...declareResourceSet ; (2)通过读取 smali 文件引用资源指令(包括通过 reference 和直接通过资源 id 引用资源)得出 class 引用资源 classRefResourceSet...在微信终端 APM 系统应用 微信终端 APM 系统使用 Matrix-ApkChecker 来监测微信每个版本 apk 大小变化,并针对每个版本提出优化 issue 和优化 suggesstion

    4.4K40
    领券