首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果在开始执行xx.jar之后删除xx.jar文件,会发生什么情况

如果在开始执行xx.jar之后删除xx.jar文件,会发生什么情况
EN

Stack Overflow用户
提问于 2010-04-23 15:47:28
回答 3查看 4.7K关注 0票数 6

我有一个运行java二进制代码(xx.jar文件)的服务器程序。当它运行时,我错误地删除了xx.jar文件。程序将继续运行。但我不确定结果是否正确,我也不确定程序是否会失败。

当我删除xx.jar文件时,程序在方法中存在了很长一段时间,并且仍然在该方法调用中。当它调用另一个方法调用时,我的程序会失败吗?

我之所以问这个问题,是因为如果删除文件没有坏处,我将在服务器计算机上获得大约3-4小时的时间

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-23 15:54:47

这取决于您的操作系统,这将是或不会是一个问题。例如,在Linux上,直到所有打开该文件的应用程序都将其关闭,该文件才会被真正删除。该文件将从目录列表中消失,但它仍然存在,并且可以读取(甚至写入!)由打开了有效文件描述符的任何应用程序执行。

我不知道JVM是否保持文件描述符对应用程序的所有jar文件开放。我不会依赖它这样做,即使它有时看起来工作得很好。

票数 6
EN

Stack Overflow用户

发布于 2010-04-23 15:52:49

不能保证JVM会将.jar文件中的所有类都加载到内存中,尽管作为优化,它可能会预先加载部分或全部.jar

如果这失败了,我想它会在某个时刻发生,它不会在方法的执行过程中发生。此时必须从类路径加载一个新类,并且JVM不能再访问该文件。那么你可能会因为NoClassDefFoundError或者更糟的情况而失败。

所以,不,我绝对不会建议你这样做,即使它在某些情况下是有效的。

票数 9
EN

Stack Overflow用户

发布于 2010-04-23 16:14:39

当您完全部署和重新部署应用程序并重新启动它时,您就会知道这一点。

依赖项功能将失败并抛出Expection

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2696970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档