• 获取.jar文件运行时所处的路径


    在Windows控制台中运行.jar文件时的两种环境

    (1)控制台当前所在目录是.jar文件所在的目录

    (2)控制台当前所在目录不是.jar文件所在的目录

    我的期望:

    我希望在上述两种环境下均可以得到.jar文件所处的路径,且得到的路径是一样的

    方式一

    (1)建立一个简单的Java Project(PathTest1),代码如下:

    String path=System.getProperty("java.class.path");
    System.out.println(path);

    (2)将项目打包为Test1.jar文件,将其放在"F:work"目录下,在Windows控制台运行,查看运行情况

    可以发现两种环境下运行.jar文件得到的结果是一样的,均为.jar文件的完整路径

    方式二

    (1)建立一个简单的Java Project(PathTest2),代码如下:

    String path=Test2.class.getProtectionDomain().getCodeSource().getLocation().getPath();
    System.out.println(path);

    (2)将项目打包为Test2.jar文件,将其放在"F:work"目录下,在Windows控制台运行,查看运行情况

    可以发现两种环境下运行.jar文件得到的结果是一样的,也均为.jar文件的完整路径

    But,路径貌似有些不对劲啊,路径中的分割符不是Windows中的"",而是"/",这个该怎么处理呢???

    办法肯定是有的,在上述代码后面加上如下代码:

    if(path.endsWith(".jar")){
      path
    = path.substring(0, path.lastIndexOf("/") + 1); } File file = new File(path); path = file.getAbsolutePath();
    System.out.println(path);

    如此这般处理,再次打包运行,得到的结果即为该.jar文件的完整路径

  • 相关阅读:
    水平时间轴 html + css
    position:fixed 属性在iphone 中不起作用
    placeholer 换行
    单选 复选按钮 样式
    vux 中popup 组件 Mask 遮罩在最上层问题的解决
    vux 表单提交数据 返回后页面跳转
    前端 js 发送验证码
    前端 js 实现简单 表单提交
    vux 获取后台数据
    装饰模式之AOP之动态改变参数,和原函数绑定属性丢失
  • 原文地址:https://www.cnblogs.com/studyLog-share/p/4630285.html
Copyright © 2020-2023  润新知