Java中使用Jar包时读取当前jar文件所在的目录工具

2023-10-27

在实际使用中,jar包所放的位置是不一定的所以要动态获取当前目录


package com.gj5u.publics.util;

import java.io.File;

/**
 * 获取打包后jar的路径信息
 * 
 * @author Rex
 */
public class JarToolUtil
{
    /**
     * 获取jar绝对路径
     * 
     * @return
     */
    public static String getJarPath()
    {
        File file = getFile();
        if (file == null)
            return null;
        return file.getAbsolutePath();
    }
    
    /**
     * 获取jar目录
     * 
     * @return
     */
    public static String getJarDir()
    {
        File file = getFile();
        if (file == null)
            return null;
        return getFile().getParent();
    }
    
    /**
     * 获取jar包名
     * 
     * @return
     */
    public static String getJarName()
    {
        File file = getFile();
        if (file == null)
            return null;
        return getFile().getName();
    }
    
    /**
     * 获取当前Jar文件
     * 
     * @return
     */
    private static File getFile()
    {
        // 关键是这行...
        String path = JarToolUtil.class.getProtectionDomain().getCodeSource().getLocation().getFile();
        try
        {
            path = java.net.URLDecoder.decode(path, "UTF-8"); // 转换处理中文及空格
        }
        catch (java.io.UnsupportedEncodingException e)
        {
            return null;
        }
        return new File(path);
    }
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中使用Jar包时读取当前jar文件所在的目录工具 的相关文章

随机推荐

  • eclipse使用技巧:快速显示行号

    1 把光标放在某个展开的类中 按下快捷键 Ctrl F10 gt 选择 Show Line Numbers 这尼玛也太简单了
  • linux 进程状态 rl,Linux进程状态详解

    Linux进程状态详解 以下部分的代码示例 来自于Linux内核的0 11版本源码 在定义进程的数据结构task struct时 有一个state字段是用来表示进程状态的 这里总结了下关于state字段的操作 关于进程的几个状态值在sche
  • 超详细CSS思维导图,自制

    CSS思维导图 这是自写的CSS思维导图 主要是还是留着自己有时候有些忘记的东西 就可以在上面查找一下 上面写的也是比较基础的CSS知识 相信以后也一定会用得上的 今天还是花了点时间的 啊现在有点累了 果然我这个身体板是差点啊 休息了休息了
  • jquery html方法xss,jQuery DOM方法中的XSS漏洞演示

    HTML 导入代码模板 XSS vulnerabilities in jQuery DOM methods Input Output native innerHTML The HTML5 spec states that script ta
  • 3.荔枝派 zero(全志V3S)-制作linux烧录镜像

    上面是我的微信和QQ群 欢迎新朋友的加入 目录 1 安装工具 2 生成新的img文件 3 分割虚拟磁盘 4 挂载虚拟磁盘并格式化 5 开始备份 6 卸载虚拟磁盘 7 烧录测试 最近学习linux 发现烧录镜像都有点麻烦 例如荔枝派 需要先用
  • 文件上传 相关知识

    文件上传 参考文章 平井缘 要点 1 示例一个 FormData 对象 要点 2 将上传时获取到的 file 文件 append 到 formdata 对象中 要点 3 配置上传接口的 请求头 方式一 表单提交文件 原生
  • JS Es6中判断b数组对象是否有跟a数组对象相同的数值(例如:id),有的话就过滤掉

    如下 数组 对象a和b let a id 1 value this id 2 value is let b id 1 value hello id 3 value world filter 方法创建一个新的数组 新数组中的元素是通过检查指定
  • 【数据分析】初识 AB 测试

    初识 AB 测试 1 简述 AB 测试 AB 测试是指为了评估模型 项目的效果 在 APP PC 端同时设计多个版本 在同一时间维度下 分别让组成成分相同 相似 的访客群组随机访问这些版本 收集各群组的用户体验数据和业务数据 最后分析评估出
  • Maven解决静态资源过滤问题

    前言 在我们使用Maven构建项目的时候 会默认过滤掉静态资源 所以 需要手动来配置 一 认识静态资源与动态资源 静态资源 包含HTMl 图片 CSS JS等不需要与数据库交互的一类文件 动态资源 需要与数据库交互 可以根据需要显示不同的数
  • 选择文件后自动上传文件' aria-label='选择文件后自动上传文件'> 选择文件后自动上传文件

    想要一个选择了文件就自动上传的效果 但之前的
  • 计算机毕业设计Node.js+Vue基于Java网络游戏后台管理系统(程序+源码+LW+部署)

    该项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 欢迎交流 项目运行 环境配置 Node js Vscode Mysql5 7 HBuilderX Navicat11 Vue Express 项目技术 Express框架 No
  • steam"无法连接到更新服务器"的问题

    问题现象如下图所示 在打开steam游戏时出现了上述问题 无法正常游戏 不光如此steam官网也无法正常显示 只有部分文字和图片 样式缺失 打开chrome的F12开发者工具 进入network模块监视可发现大量的请求并没有被响应 甚至没有
  • SQL语句执行顺序

    首先了解一下sql语句的执行步骤 1 语法分析 分析语句的语法是否符合规范 衡量语句中各表达式的意义 2 语义分析 检查语句中涉及的所有数据库对象是否存在 且用户有相应的权限 3 视图转换 将涉及视图的查询语句转换为相应的对基表查询语句 4
  • 软件测试必看!5分钟掌握sql查询的聚合函数

    数据查询操作之排序 语法格式 select from 表名 order by 字段名 asc desc 重点 1 字段名可以有多个 如果字段名1 相同 再按照字段名2排序 2 默认情况下按照从小到大去排列 3 asc 就是从小到大排列 de
  • 【图论】—— 有向图的强连通分量

    给定有向图 若存在 满足从 出发能到达 中所有的点 则称 是一个 流图 Flow Graph 记为 其中 称为流图的源点 在一个流图 上从 进行深度优先遍历 每个点只访问一次 所有发生递归的边 换言之 从 到 是对 的第一次访问 构成一棵以
  • Java中Juc并发编程基础

    1 什么是JUC 就是java util concurrent并发包下面使用的工具包 1 1 线程和进程 进程 是一个程序 QQ exe 网易云音乐 大数据领域的NameNode其实就是程序的集合 一个进程往往可以包含多个线程 至少包含一个
  • 同步和异步

    同步和异步通常用来形容方法的调用方式 同步方法表明调用一旦开始 调用者必须等待方法执行完成 才能继续执行后续方法 异步方法表明 方法一旦开始 立即返回 调用者无需等待其中方法执行完成 就可以继续执行后续方法 通常我们写的方法都是同步方法 方
  • 使用Nginx解决跨域问题

    目录 使用Nginx解决跨域问题 1 修改浏览器 客户端访问地址 2 在nginx conf配置文件需配置server 3 在Nginx中配置客户端访问的接口 按照规则或通配 并设置被代理的服务器 4 在Nginx中统一配置客户端访问的头部
  • java实时获取汇率

    1 分享三个觉得挺不错的汇率api 1 每小时免费50次查询配额 NOWapi 2 0 1元2000次 年 阿里云 汇率api 3 每天免费100次查询配额 需要实名认证 聚合科技 如果只是针对很少外币获取汇率的话 个人推荐去阿里云购买 毕
  • Java中使用Jar包时读取当前jar文件所在的目录工具

    在实际使用中 jar包所放的位置是不一定的所以要动态获取当前目录 package com gj5u publics util import java io File 获取打包后jar的路径信息 author Rex public class