新上传的jar包必须将服务器重启后更改才会生效是什么问题?

新上传的jar包必须将服务器重启后更改才会生效是什么问题?

问题描述:

使用centos7的操作系统,在/home路径下挂载了 一个硬盘,在/home/welcome/下放了一个jar包。

 

修改代码后覆盖上传新的jar包运行后修改不生效,必须重启服务器才可以生效,请大神看看是什么原因造成的,要如何修复。

 

java的版本是1.8.0_271

 

补充一下,我重启jar包服务后更改不生效,要重启服务器再开服务才能使更改生效。

就是说上传更新后,同样的jar包,重启服务器前后启动的服务是不一样的。

重新部署的项目基本都要重启才能生效

把原来的jar包删除,重新上传新的jar试一下

 

看下服务器上的jar包时间戳,你可能没有权限覆盖,但是也不会提示你,保留的还是原来的jar包

“修改代码后覆盖上传新的jar包运行后修改不生效,必须重启服务器才可以生效”

 

jar包里面的文件是class文件, class文件就是我们说的子节码文件, JAVA虚拟机需要加载class文件到内存里,装载完成之后会调用字节码解释器和JIT即时编译器来进行解释和编译 。 编译完之后由执行引擎开始执行

你只是替换了JAR包,虚拟机根本就没有加载,所以不生效, 重启后实现了重新加载,所以生效

这种情况如何解决

把jar包移到根目录下建一个目录丢进去,然后给文件夹赋予777的权限,比如/opt/app