SpringBoot项目jar发布后如何获取jar包所在目录路径

目录
  • SpringBoot项目jar发布获取jar包所在目录路径
  • SpringBoot打可执行jar运行时输出文件路径问题

SpringBoot项目jar发布获取jar包所在目录路径

ApplicationHome ah = new ApplicationHome(getClass());
File file = ah.getSource();
System.out.println(file.getParentFile().toString());

说明:

该种方法获取jar包所在路径好处,会根据当前是本地测试环境还是发布到生产环境准确获取jar所在路径。

SpringBoot打可执行jar运行时输出文件路径问题

Ubuntu系统环境下,项目打jar包形式运行工程生成文件以及获取该文件的路径设置问题

1.使用前辈项目中如下方法在打war包和本地运行项目时能够获取目录。

IDEA中获取的是:/home/xxx/xxx/(projectName)/target/classes;

若使用在jar包中获取的是:/home/xxx/BOOT-INF/classes

String path = (String.valueOf(Thread.currentThread().getContextClassLoader().getResource(""))).replaceAll("file:/", "").replaceAll("%20", " ").trim();

2.当项目打jar包使用java -jar xxx.jar运行时,jar会作为一个单独的文件运行,文件不会生成在jar包中。

所以使用System.getProperty("user.dir");获取当前jar所运行的路径(和jar文件所在的同级目录),使用该路径作为根目录存放项目中生成的文件。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • springboot项目打成jar包后无法获取static下的静态资源文件的问题分析

    springboot 后端项目 做某个功能时 需要读取根目录下的.doc文件,具体项目中路径如下: 开始是通过绝对路径读取文档,在本地没有任何问题. 但是 讲项目打成jar包 部署到测试环境发现无论怎样都读取不到,然后在本地运行jar包出现同样的情况. 捕获异常:java.io.FileNotFoundException [org.apache.ibatis.session.defaults.DefaultSqlSession@55b40849] java.io.FileNotFoundExce

  • SpringBoot上传文件到本服务器 目录与jar包同级问题

    前言 看标题好像很简单的样子,但是针对使用jar包发布SpringBoot项目就不一样了. 当你使用tomcat发布项目的时候,上传文件存放会变得非常简单,因为你可以随意操作项目路径下的资源.但是当你使用SpringBoot的jar包发布项目的时候,你会发现,你不能像以前一样操作文件了.当你使用File file = new File()的时候根本不知道这个路径怎么办.而且总不能很小的项目也给它构建一个文件服务器吧.所以这次就来解决这样的问题. 不想知道细节的,可以直接跳转到最后封装的部分,里面

  • 关于Springboot打成JAR包后读取外部配置文件的问题

    Springboot的默认配置文件为:application.properties或者是application.yml 如果这两个配置文件都存在,不冲突的话,就互相补充.冲突的话,则properties优先级高. 当我们使用IDEA创建出一个Springboot项目上时,配置文件默认出现在classpath(也就是项目里的resources)目录下. Springboot的application.properties配置文件的加载路径优先级(从高到低): 工程根目录:./config/ 工程根目

  • springboot打jar包之后下载文件的路径问题

    错误信息 能看到下载的路径中包含了jar包,wlaqWeb-0.0.1-SNAPSHOT.jar! java.io.FileNotFoundException: file:\C:\Users\PENGXIN\Desktop\网络安全\jars\wlaqWeb-0.0.1-SNAPSHOT.jar!\BOOT-INF\classes!\static\securityParameter\template\网络安全台账(模板).xlsx (文件名.目录名或卷标语法不正确.) at java.io.Fi

  • SpringBoot项目jar发布后如何获取jar包所在目录路径

    目录 SpringBoot项目jar发布获取jar包所在目录路径 SpringBoot打可执行jar运行时输出文件路径问题 SpringBoot项目jar发布获取jar包所在目录路径 ApplicationHome ah = new ApplicationHome(getClass()); File file = ah.getSource(); System.out.println(file.getParentFile().toString()); 说明: 该种方法获取jar包所在路径好处,会根

  • SpringBoot项目中jar发布获取jar包所在目录路径的最佳方法

     示例代码: //第一种 File path = new File(ResourceUtils.getURL("classpath:").getPath()); if(!path.exists()) path = new File(""); System.out.println(path.getAbsolutePath()); //第二种 System.out.println(System.getProperty("user.dir")); //

  • springboot 项目容器启动后如何自动执行指定方法

    目录 springboot 项目容器启动后自动执行指定 springboot 容器及启动过程 问题1:为什么要启动父子两个容器? 问题2:在什么时候启动父容器? 问题3:父容器和子容器的区别? 问题4:怎么保证父容器启动过程中 问题5:容器实际通过什么来管理bean springboot 项目容器启动后自动执行指定 我们需要写一个class去让它实现ApplicationRunner,然后重写它的run方法就行了,注意类加上@Component注解 注意:这个class需要写在和Applicat

  • vue项目打包发布后接口报405错误的解决

    目录 vue项目打包发布后接口报405 vue项目打包之后接口出现错误问题 错误信息 关键代码 解决方式 vue项目打包发布后接口报405 vue项目前端做了代理打包后后台不识别报405 not allowed vue.config.js文件配置   devServer: {     // host: "0.0.0.0", //项目运行时的本地地址     // port: 8880, // 端口号     //proxy:{'/api':{}},代理器中设置/api,项目中请求路径为

  • 实现Android 获取cache缓存的目录路径的方法

    实现Android 获取cache缓存的目录路径的方法 Android开发中,有时需要知道cache缓存的路径.我写了一个静态类,供大家能参考 public class CommonUtil { /** * 获取cache路径 * * @param context * @return */ public static String getDiskCachePath(Context context) { if (Environment.MEDIA_MOUNTED.equals(Environmen

  • PowerShell包含另一个脚本文件和获取当前脚本所在目录的方法例子

    本文介绍在PowerShell脚本中,如何获取脚本文件(.ps1文件)所在的目录.本文介绍在方法适用于PowerShell 3.0. 在PowerShell 3.0中,有一个变量可以很方便的获取脚本所在的目录.我们在e:\ps\script1.ps1和script2.ps1,内容分别如下: script1.ps1内容: 复制代码 代码如下: Write-Host "This is script1.ps1" Write-Host "Let me call script2.ps1

  • SpringBoot项目打包发布到外部tomcat(出现各种异常的解决)

    先说遇到问题的情景: 初次尝试使用spring boot框架写了个小web项目,在Intellij IDEA中能正常启动运行.使用maven 运行install,生成war包,发布到本机的tomcat下,出现异常,主要的异常信息是  .......LifeCycleException.经各种搜索,找到答案. spring boot因为内嵌tomcat容器,所以可以通过打包为jar包的方法将项目发布,但是如何将spring boot项目打包成可发布到tomcat中的war包项目呢? 1. 既然需要

  • PHP获取当前文件所在目录 getcwd()函数

    用 getcwd() 函数或 dirname(__FILE__) 复制代码 代码如下: <?php echo getcwd() . "<br/>"; echo dirname(__FILE__); ?>

  • springboot项目以jar包运行的操作方法

    公司的springboot项目本来是打war包的,突然要求改成jar包,一路上碰到一些坑,在此记录一下. 一.pom文件配置 1.打包方式改成jar <packaging>jar</packaging> 2.配置可执行jar包的maven插件 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>sp

  • SpringBoot项目从搭建到发布一条龙

    前言 目前正在练手springboot+vue,因为很多步骤会遇到困难,当时查完资料解决,过一段时间就会忘记,所以决定建个系列记录下来.因为中间很多过程已经被其他大神写过,且这次开发经历仅供学习分享与讨论,就直接借鉴过来了,会附上原作者传送门.本次项目准备写文档临时起意,之前的步骤未作记录,比如部署linux虚拟机,利用mycat实现读写分离等,这个等项目需要用到的时候再加说明.好了现在让我们开始吧! 第二章 使用IDEA搭建一个简单的SpringBoot项目--初始化项目 前言 该篇文章质量很

随机推荐