我有一个应用程序有一个可执行 JAR,它使用其他 JAR 的库。当我更新库 JAR 时,用户关闭他们的程序并再次打开它,然后使用新的 JARS。但是,我有一个只包含一个类的 JAR,它只包含字段。当这个 JAR 被自己替换时,旧 JAR 中字段中的值似乎在程序中使用。
此时旧的 JAR 已从文件系统中消失,所以我对这些值的来源感到有些困惑。我当前的解决方案是更新另一个使用有问题的 JAR 的 JAR,但我不确定为什么会这样,所以我正在寻找任何可能可用的见解。
最佳答案
Java 代码中的常量可以被编译器内联。示例:
public class A {
public static final String STR = "foo";
}
public class B {
public static void main(final String... args) {
System.out.println(A.STR);
}
}
如果将STR改为“bar”,重新编译A,B在运行时仍会打印“foo”。解决方案是重新编译和更新使用常量的代码。
关于java - 为什么我的多 jar 应用程序似乎没有注意到包含一类唯一字段的 JAR 中的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15033067/