解决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 中的 Unsafe 魔法类的作用大全

    Java 中的 Unsafe 魔法类的作用大全

    Unsafe是位于sun.misc包下的一个类,主要提供一些用于执行低级别、不安全操作的方法,关于Java 中的 Unsafe 魔法类,到底有啥用处,你都了解吗,下面通过本文给大家普及一下
    2021-06-06
  • 解决java web应用线上系统偶发宕机的情况

    解决java web应用线上系统偶发宕机的情况

    这篇文章主要介绍了解决java web应用线上系统偶发宕机的情况,具有好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 图解Java排序算法之归并排序

    图解Java排序算法之归并排序

    这篇文章主要为大家详细介绍了Java经典排序算法之归并排序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • JVM调优参数的设置

    JVM调优参数的设置

    Java虚拟机的调优是一个复杂而关键的任务,可以通过多种参数来实现,本文就来介绍一下JVM调优参数的设置,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • java接口用户上下文的设计与实现

    java接口用户上下文的设计与实现

    这篇文章主要为大家介绍了接口用户上下文的设计与实现实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • jetbrain fleet对标vscode实际操作

    jetbrain fleet对标vscode实际操作

    Gradle是一个基于Apache Ant和Apache Maven概念项目自动化构建开源工具,jetbrain家的fleet(已获得预览权限)直接对标vscode , fleet有望超过vscode吗?今天我们实际操作下
    2021-12-12
  • java实现将汉语转换为拼音功能

    java实现将汉语转换为拼音功能

    这篇文章主要介绍了java实现将汉语转换为拼音功能,非常不错,具有参考借鉴价值 ,需要的朋友可以参考下
    2017-05-05
  • Java8如何从一个Stream中过滤null值

    Java8如何从一个Stream中过滤null值

    这篇文章主要介绍了Java8如何从一个Stream中过滤null值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • ReentrantLock源码详解--公平锁、非公平锁

    ReentrantLock源码详解--公平锁、非公平锁

    ReentrantLock重入锁,是实现Lock接口的一个类,也是在实际编程中使用频率很高的一个锁,表示能够对共享资源能够重复加锁,即当前线程获取该锁再次获取不会被阻塞。下面我们来深入了解一下它吧
    2019-06-06
  • Java读取txt文件的方法

    Java读取txt文件的方法

    这篇文章主要为大家详细介绍了Java读取txt文件的方法,分享Java读取txt文件代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12

最新评论