Java 如果程序在运行时替换jar文件,会发生什么?

Java 如果程序在运行时替换jar文件,会发生什么?,java,jar,Java,Jar,如果程序在运行时替换jar文件,会发生什么 程序执行顺序如下: 测试应用程序执行在TestNG FW下启动 在..\build-under-test\文件夹中下载并更新被测应用程序的jar文件(旧文件替换为新文件)(需要测试最新版本) 正在测试的应用程序从测试应用程序开始 正如您所看到的,测试应用程序和被测应用程序在同一个JVM中执行。所以问题是:应用程序是否可以更新自己的库文件(这些文件实际上只在第3步中使用)?(在第1步中使用缓存的jar文件或…?)它会崩溃吗?不,我们不能这样做 有一个错误

如果程序在运行时替换jar文件,会发生什么

程序执行顺序如下:

  • 测试应用程序执行在TestNG FW下启动
  • ..\build-under-test\
    文件夹中下载并更新被测应用程序的jar文件(旧文件替换为新文件)(需要测试最新版本)
  • 正在测试的应用程序从测试应用程序开始

  • 正如您所看到的,测试应用程序和被测应用程序在同一个JVM中执行。所以问题是:应用程序是否可以更新自己的库文件(这些文件实际上只在第3步中使用)?(在第1步中使用缓存的jar文件或…?)它会崩溃吗?

    不,我们不能这样做


    有一个错误
    文件已在使用中

    不,我们无法执行此操作


    出现错误
    文件已在使用中

    您尝试过吗?通常,如果jar位于类路径上,您将无法覆盖它们,因为它们正在使用并被锁定。错误消息将取决于您的操作系统。@FlorianAlbrecht,我正要这么做。您试过了吗?通常,如果jar位于类路径上,您将无法覆盖它们,因为它们正在使用并被锁定。错误消息将取决于您的操作系统。@FlorianAlbrecht,我将这样做。您需要使用一个自定义类加载器,它可以重新加载JAR文件…@Ben,我将尝试另一种方法-在启动测试应用程序之前更新文件。您需要使用一个自定义类加载器,它可以重新加载JAR文件…@Ben,我将尝试另一种方法-在启动测试应用程序之前更新文件