java - 如果我在开始执行 xx.jar 后删除 xx.jar 文件会发生什么

标签 java jar

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

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

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

最佳答案

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

如果这失败了,我想它会在某个时候发生,它不会在方法执行的过程中发生。它将处于必须从类路径加载新类并且 JVM 无法再访问该文件的位置。然后你会因 NoClassDefFoundError 或更糟的情况而失败。

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

关于java - 如果我在开始执行 xx.jar 后删除 xx.jar 文件会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2696970/

相关文章:

java - 如何使用 JMenu 项在 JTextArea 中的单独行上显示整数?

java - 为什么我的胖 JAR 不能在不同的 PC 上运行 - 找不到主类?

amazon-web-services - 如何从 Clojure 项目或 jar 创建 AWS Lambda 函数?

java - 使用 Java 自动提交 HTML 表单以查找杂货店营业时间

java - SplayTrees 和字典

java - CompletableFuture 的意外行为

java - 如何终止从我的 java 应用程序启动的 cmd 进程?

java - JUnit - 未调用 RunListener

java - 可执行 jar 文件如何与另一个程序一起工作

java - Eclipse 使用源代码编译 .jar 文件,并且没有 .class 文件