【参考文章】: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
如果文章对您有所帮助,可以点一下推荐哦