springboot 多模块 不同环境,路径相关问题

同样的代码,在idea上结果如下:

img

在服务器上部署,结果如下:
img

不同环境下,路径不同,导致开发陷入困境。请问这是什么情况?__

可不就是这样嘛,
打包运行,如果是外置tomcat,和你本地开发差距不大,都是文件夹,
如果是jar发布,classpath资源文件路径就是.jar!xxxxx
一般只有你获取class path下面的文件才会有点问题,单个文件直接class.getResourceAsStream,
如果你是要获取文件夹下面的所有文件的话,可以用PathMatchingResourcePatternResolver

spring也是采用PathMatchingResourcePatternResolver做包扫描的
img

你的服务器是不是用的windows而不是linux,你上面的截图显示的都是windows下的,但是一般系统打包运行都是在服务器linux下
springboot在idea里面打包先在本地跑一下呀,没人会直接打包后直接放到服务器里面,而是在本地运行一下jar包,通过cmd命令,运行java -jar xxx.jar

如果本地运行没问题,则就可以上传到服务器里面进行部署运行,java是一个跨平台语言,所以你服务器上的jdk和数据库与本地的版本对应即可

  • 你描述太笼统了。可以具体讲讲吗?
  • 路径的话,最好用相对路径,分割符可以用java里的常量File.separator之类,获取当前路径你可以反射拿到任何一个class文件的路径的,然后处理。
  • 要是加载jar包。你可以写个shell,在命令行加载一下。类似这样的
#!/bin/sh 
echo $path
mainclasspath="main"
classpath="/...../target/classes"
pathtmp='' 
for jarpath in `ls /..../..../lib/*.jar` 
do 
classpath=$classpath:$jarpath 
done

echo $mainclasspath
echo $classpath
 
nohup java -Xmx1024m -classpath $classpath $mainclasspath > /dev/null  &