springboot 获取路径

news/2025/1/12 13:46:43/
@PostConstructpublic void setup() {try {// jar包所在目录  /Users/mashanshanString path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();System.out.println("path:" + path);  // file:/Users/mashanshan/manual-admin-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/ApplicationHome home = new ApplicationHome(getClass());File jarFile1 = home.getSource();String path0 = jarFile1.getParentFile().toString();System.out.println("path0: " + path0);  // /Users/mashanshanString path1 = ManualController.class.getClassLoader().getResource("").getPath();System.out.println("path1: " + path1);  // file:/Users/mashanshan/manual-admin-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/String path2 = System.getProperty("user.dir");System.out.println("path2:" + path2);  // /Users/mashanshanFile path3 = new File(ResourceUtils.getURL("classpath:").getPath());System.out.println("path3:" + path3.getAbsolutePath());  // /Users/mashanshan/file:/Users/mashanshan/manual-admin-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!File path4 = new File("");System.out.println("path4:" + path4.getAbsolutePath());  ///Users/mashanshan} catch (FileNotFoundException e) {throw new RuntimeException(e);}}

开发环境运行输出:
path:/Users/mashanshan/gitresp/manual-server/manual-admin/target/classes/
path0: /Users/mashanshan/gitresp/manual-server/manual-admin/target
path1: /Users/mashanshan/gitresp/manual-server/manual-admin/target/classes/
path2:/Users/mashanshan/gitresp/manual-server
path3:/Users/mashanshan/gitresp/manual-server/manual-admin/target/classes
path4:/Users/mashanshan/gitresp/manual-server

直接运行jar包输出:
path:file:/Users/mashanshan/manual-admin-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/
path0: /Users/mashanshan
path1: file:/Users/mashanshan/manual-admin-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/
path2:/Users/mashanshan
path3:/Users/mashanshan/file:/Users/mashanshan/manual-admin-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!
path4:/Users/mashanshan


http://www.ppmy.cn/news/1270813.html

相关文章

ARM安全学习路标

1. ARM架构基础知识 首先,你需要全面了解ARM架构的基础知识,包括指令集和寄存器的特点,处理器模式和特权级的切换机制,内存管理单元(MMU)和保护域等。 2. 汇编语言和逆向工程 研究学习ARM汇编语言&#…

Android 蓝牙BluetoothAdapter 相关(一)

Android 蓝牙相关 本文主要讲述android 蓝牙的简单使用. 1: 是否支持蓝牙 /*** 是否支持蓝牙** return*/ private boolean isSupportBluetooth() {BluetoothAdapter bluetoothAdapter BluetoothAdapter.getDefaultAdapter();return bluetoothAdapter ! null; }2: 开启蓝牙 …

[渗透测试学习] Sau - HackTheBox

首先是信息搜集,nmap扫一下 nmap -sV -sC -p- -v 10.10.11.224 发现存在两个端口,55555端口有http服务,访问一下 获得线索request-baskets版本为1.2.1,搜索发现存在漏洞 那么我们试试构造ssrf,create的时候bp抓包 构…

五、Microsoft群集服务(MSCS)环境的搭建

一、【目的】 学会利用Windows Server布置群集环境。 二、【设备】 FreeNAS11.2,Windows Server 2019 三、【要求】 学会利用Windows Server布置群集环境,掌握处理问题的能力。 配置表: 节点公网IP(public)内网IP(private)群集IP(clust…

Certbot实现 HTTPS 免费证书(Let‘s Encrypt)自动续期

Certbot实现 HTTPS 自动续期 以前阿里云支持申请一年的免费https证书,那每年我们手动更新证书并没什么大问题,但现在阿里云的免费证书仅支持3个月,这意味着每三个月都要要申请一下证书显得非常麻烦。 下面我们使用Certbot实现ssl证书的自动…

Android 长按电源键弹出的GlobalActions菜单

长按事件动作的配置 frameworks\base\core\res\res\values\config.xml 选择1会弹出Global actions menu <!-- Control the behavior when the user long presses the power button.0 - Nothing1 - Global actions menu2 - Power off (with confirmation)3 - Power off…

中华鲲鹏 深耕湾区 华鲲振宇重磅亮相第二届数字政府建设峰会

12月8日,由国家互联网信息办公室指导,广东省人民政府、香港特别行政区政府、澳门特别行政区政府联合主办的第二届数字政府建设峰会暨“数字湾区”发展论坛在广州开幕。第十二届全国政协副主席、国家电子政务专家委员会主任王钦敏,中央宣传部副部长、中央网信办主任、国家网信办…

数据分析为何要学统计学(11)——如何进行时间序列分析

时间序列是由随时间变化的值构成&#xff0c;如产品销量、气温数据等等&#xff0c;该数据集合是个有序序列&#xff0c;除了数值&#xff0c;没有其他因素。通过对时间序列展开分析&#xff0c;能够回答如下问题&#xff1a; &#xff08;1&#xff09;被研究对象的活动特征是…