【参考文章】:Java文件路径(getResource)

【参考文章】:关于java:如何获取正在运行的JAR文件的路径?

【参考文章】:关于Class.getResource和ClassLoader.getResource的路径问题

【参考文章】:java中File类的getPath(),getAbsolutePath(),getCanonicalPath()区别

【参考文章】:关于System.getProperty("user.dir")的研究

1. 代码示例

        // 当前 jar包 或者 字节码文件 所在的路径
System.out.println( NativeCpp.class.getProtectionDomain().getCodeSource().getLocation().getPath());
// 输出:/E:/project/service_core/s17-blackbox/target/classes/ // classpath的目录
System.out.println( NativeCpp.class.getClassLoader().getResource("").getPath());
// 输出:/E:/project/service_core/s17-blackbox/target/classes/ // classpath的目录
System.out.println( NativeCpp.class.getResource("/").getPath());
// 输出:/E:/project/service_core/s17-blackbox/target/classes/ // 当前类(class)所在包(package)的目录
System.out.println( NativeCpp.class.getResource("").getPath());
// 输出:/E:/project/service_core/s17-blackbox/target/classes/com/streamax/s17/fms/business/jni/ // 执行 java -jar 命令的位置
System.out.println( System.getProperty("user.dir"));
// 输出:E:\project\service_core // 执行 java -jar 命令的位置
System.out.println( new File("").getCanonicalPath());
// 输出:E:\project\service_core

Java中路径相关的获取方式的更多相关文章

  1. 【Socket编程】Java中网络相关API的应用

    Java中网络相关API的应用 一.InetAddress类 InetAddress类用于标识网络上的硬件资源,表示互联网协议(IP)地址. InetAddress类没有构造方法,所以不能直接new出 ...

  2. Java中创建对象的几种方式

    Java中创建对象的五种方式: 作为java开发者,我们每天创建很多对象,但是我们通常使用依赖注入的方式管理系统,比如:Spring去创建对象,然而这里有很多创建对象的方法:使用New关键字.使用Cl ...

  3. Java中创建对象的五种方式

    我们总是讨论没有对象就去new一个对象,创建对象的方式在我这里变成了根深蒂固的new方式创建,但是其实创建对象的方式还是有很多种的,不单单有new方式创建对象,还有使用反射机制创建对象,使用clone ...

  4. Java中的静态代理实现方式

    1.编写一个接口类 如:Subject package com.neusoft.pattern.staticProxy; /** * <p>Title:</p> * <p ...

  5. java 中利用反射机制获取和设置实体类的属性值

    摘要: 在java编程中,我们经常不知道传入自己方法中的实体类中到底有哪些方法,或者,我们需要根据用户传入的不同的属性来给对象设置不同的属性值,那么,java自带的反射机制可以很方便的达到这种目的,同 ...

  6. Java中反射的三种常用方式

    Java中反射的三种常用方式 package com.xiaohao.test; public class Test{ public static void main(String[] args) t ...

  7. Java进阶(四十二)Java中多线程使用匿名内部类的方式进行创建3种方式

    Java中多线程使用匿名内部类的方式进行创建3种方式 package cn.edu.ujn.demo; // 匿名内部类的格式: public class ThreadDemo { public st ...

  8. 11. java中路径/和\的区别

    一般可以认为是"/"的作用等同于"\\"在java中路径一般用"/"windows中的路径一般用"\"linux.uni ...

  9. 【转】Java中创建对象的5种方式

    Java中创建对象的5种方式   作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象.然而这里有很多创建对象的方法,我们会在这篇文章中学到. Java中有 ...

随机推荐

  1. [转载]Linux 命令详解:./configure、make、make install 命令

    [转载]Linux 命令详解:./configure.make.make install 命令 来源:https://www.cnblogs.com/tinywan/p/7230039.html 这些 ...

  2. vue-filters(过滤器)

    局部过滤器: <html> <head> <title>vue</title> <meta charset="utf-8"&g ...

  3. MSPBSL_Scripter编译

    The BSL Scripter is a PC application that is available for Windows, Linux and Mac OS X. It is a user ...

  4. ASE19团队项目beta阶段Backend组 scrum2 记录

    本次会议于12月5日,19:00在微软北京西二号楼sky garden召开,持续10分钟. 与会人员:Zhikai Chen, Lihao Ran, Xin Kang 请假人员:Hao Wang 每个 ...

  5. 阿里P7浅谈SpringMVC

    一.前言 既然是浅谈 SpringMVC,那么我们就先从基础说起,本章节主要讲解以下内容: 1.三层结构介绍 2.MVC 设计模式介绍 3.SpringMVC 介绍 4.入门程序的实现 注:介绍方面的 ...

  6. MySQL在command line Client下的一些命令

    MySQL在command line Client下的一些命令 通过CMD进入到本地数据库: mysql -h localhost -u -root -p 参数说明: -h 要连接的服务器的主机名或I ...

  7. 网络设备驱动程序-netdevice结构体关键部分注释

    仅仅做个记录,内核4.19 struct net_device { char name[IFNAMSIZ]; //网络设备的名称 struct hlist_node name_hlist; char ...

  8. 中国大学MOOC课程信息之数据分析可视化一

    版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/82263391 9月2日更:中国大学MOOC课程信息之数据分 ...

  9. windows7重置网卡命令

    点击windows左下角菜单键,输入cmd 然后鼠标右键 cmd 以管理员身份运行,并输入命令 netsh winsock reset, 然后回车执行. 系统会提示要求重启计算机. 重启后即重置网卡成 ...

  10. 线程的 run()和 start()有什么区别?(未完成)

    线程的 run()和 start()有什么区别?(未完成)