解决springboot项目打成jar包后运行时碰到的小坑

 更新时间:2022年02月15日 10:53:48   作者:vinceLin054  
这篇文章主要介绍了解决springboot项目打成jar包后运行时碰到的小坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

项目打成jar包后运行时的坑

问题

我的springboot项目中有用的一段代码是往static目录下添加文件获取路径的代码如下

String path=ResourceUtils.getURL("classpath:static/task").getPath().replace("%20"," ");

部署阿里云的服务器上,通过运行jar包的形式运行的时候,发现运行到这部分代码的时候,获取到staic/task路径后通过路径创建文件的时候会出现问题

  • windows系统会报异常
  • linux系统会在跟jar同级目录下创建获取的目录及文件夹)

显然这些都不是我们想要的

解决办法

保持原来的项目结构,将jar包解压后通过运行springboot启动类来启动项目

解压jar命令:

jar xvf 文件名.jar      解压到当前目录

运行class命令可参考

nohup java -cp .:/opt/homework/BOOT-INF/lib/* lemon.homework.HomeworkApplication >/opt/homework/temp.txt

后台运行class且加入依赖的jar包并将日志文件输出至temp.txt:

打jar包后运行提示找不到界面

用的thymeleaf模版,把html文件放在resources的templates目录下面。

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-thymeleaf</artifactId>
		</dependency>

控制层代码为:

	@RequestMapping("login")
	public String login(String code, HttpServletResponse response, HashMap<String, Object> map) {
		logger.debug("code:" + code);
		return "/login";
	}

在eclipse访问是没有问题的,可以正常访问到界面。

但是打jar包后,java -jar运行时,提示找不到login模版。

去掉视图名称中的"/"就好了。

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

相关文章

  • Java语言描述存储结构与邻接矩阵代码示例

    Java语言描述存储结构与邻接矩阵代码示例

    这篇文章主要介绍了Java语言描述存储结构与邻接矩阵代码示例,涉及Java存储结构,邻接矩阵,邻接表的介绍与比较,然后分享了邻接矩阵的Java实现等相关内容,具有一定借鉴价值,需要的朋友可以参考。
    2017-11-11
  • Java的可变参数与Collections类的功能示例解析

    Java的可变参数与Collections类的功能示例解析

    这篇文章主要为大家介绍了Java的可变参数与Collections类的功能示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务的方法(推荐)

    使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务的方法(推荐)

    在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求,具体内容详情大家参考下本文
    2018-01-01
  • Java使用FTP上传文件并模拟接受的方法

    Java使用FTP上传文件并模拟接受的方法

    这篇文章主要介绍了Java使用FTP上传文件并模拟接受的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 使用@PropertySource读取配置文件通过@Value进行参数注入

    使用@PropertySource读取配置文件通过@Value进行参数注入

    这篇文章主要介绍了使用@PropertySource读取配置文件通过@Value进行参数注入,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • ManyToMany单向、双向:@JoinTable的使用

    ManyToMany单向、双向:@JoinTable的使用

    这篇文章主要介绍了ManyToMany单向、双向:@JoinTable的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 全网最全SpringBoot集成swagger的详细教程

    全网最全SpringBoot集成swagger的详细教程

    swagger是当下比较流行的实时接口文文档生成工具,swagger分为swagger2 和swagger3两个常用版本,二者区别不是很大,主要对于依赖和注解进行了优化,swagger2需要引入2个jar包,swagger3只需要一个,用起来没有什么大的区别,本文给大家详细介绍,感兴趣的朋友一起看看吧
    2022-08-08
  • 使用curator实现zookeeper锁服务的示例分享

    使用curator实现zookeeper锁服务的示例分享

    这篇文章主要介绍了使用curator实现zookeeper锁服务的示例,需要的朋友可以参考下
    2014-02-02
  • IDEA自定义Maven仓库的实现

    IDEA自定义Maven仓库的实现

    使用Maven进行Java程序开发时,开发者能够极大地提高开发效率,本文主要介绍了IDEA自定义Maven仓库的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 关于Intellij idea 报错:Error : java 不支持发行版本5的问题

    关于Intellij idea 报错:Error : java 不支持发行版本5的问题

    这篇文章主要介绍了关于Intellij idea 报错:Error : java 不支持发行版本5的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02

最新评论