同样的代码,在idea上结果如下:
在服务器上部署,结果如下:
不同环境下,路径不同,导致开发陷入困境。请问这是什么情况?__
可不就是这样嘛,
打包运行,如果是外置tomcat,和你本地开发差距不大,都是文件夹,
如果是jar发布,classpath资源文件路径就是.jar!xxxxx
一般只有你获取class path下面的文件才会有点问题,单个文件直接class.getResourceAsStream,
如果你是要获取文件夹下面的所有文件的话,可以用PathMatchingResourcePatternResolver
spring也是采用PathMatchingResourcePatternResolver做包扫描的
你的服务器是不是用的windows而不是linux,你上面的截图显示的都是windows下的,但是一般系统打包运行都是在服务器linux下
springboot在idea里面打包先在本地跑一下呀,没人会直接打包后直接放到服务器里面,而是在本地运行一下jar包,通过cmd命令,运行java -jar xxx.jar
如果本地运行没问题,则就可以上传到服务器里面进行部署运行,java是一个跨平台语言,所以你服务器上的jdk和数据库与本地的版本对应即可
File.separator
之类,获取当前路径你可以反射拿到任何一个class文件的路径的,然后处理。#!/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 &