获取运行的class文件,所在的目录

本文探讨了Java代码获取类路径的方法,分别展示了普通Java应用、Springboot在Eclipse中运行以及Springboot通过命令行以jar包启动时的类路径差异,并指出在不同环境中类路径可能指向的位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

■例1 (普通java代码)

・代码1

・效果1

・目录1

■例2 ( Spring boot  Eclipse中启动)

・代码2

・效果2

・目录2

■例3 ( Spring boot  命令行中,通过jar启动)

・效果3

■ 坑 !!!结果 to be [.../jre/lib/ext/ ]



■例1 (普通java代码)

・代码1

package com.sxz.test;

public class TestClassLoader {

	public static void main(String[] args) {
		String classPath = TestClassLoader.class.getClassLoader().getResource("").getPath();
		System.out.println(classPath);

	}

}

・效果1

/C:/dev/MyJava001/target/classes/

 ---

・目录1

---

 ---

■例2 ( Spring boot  Eclipse中启动)

・代码2

java处理,调用外系统的 WebAPI(https请求)时,相关知识整理_sun0322的博客-优快云博客

package com.sxz.controler;

import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.sxz.entity.TestRequest;
import com.sxz.entity.TestResponse;

@RestController
public class TestController {

    @RequestMapping(value = "/createUser", consumes = "application/json;charset=utf-8", produces="application/json;;charset=utf-8")
    public TestResponse add(@RequestBody TestRequest test) {
    	TestResponse response = new TestResponse();
    	
    	String userName = test.getUserName();
    	String age = test.getUserAge();
    	
    	String classPath = TestController.class.getClassLoader().getResource("").getPath();

		response.setMessage(userName + "---" + age + "---" + classPath);
		response.setStatus("1");
    	
        return response ;
    }
}

・效果2

・目录2

■例3 ( Spring boot  命令行中,通过jar启动)

启动

 ===

・效果3

{

    "status": "1",

    "message": "张三---22---file:/C:/dev/workspace_202106/restFul/target/restFul-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/"

}

 

===

■ 坑 !!!结果 to be [.../jre/lib/ext/ ]

 Java学习(更新中)_sun0322-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值