diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/JavaManagementPage.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/JavaManagementPage.java index e21c322de8..96566526e7 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/JavaManagementPage.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/main/JavaManagementPage.java @@ -21,7 +21,6 @@ import com.jfoenix.controls.JFXButton; import com.jfoenix.controls.JFXListView; import javafx.beans.binding.Bindings; import javafx.beans.value.ChangeListener; -import javafx.collections.FXCollections; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Node; @@ -184,7 +183,10 @@ public final class JavaManagementPage extends ListPageBase { @FXThread private void loadJava(Collection javaRuntimes) { if (javaRuntimes != null) { - this.setItems(FXCollections.observableArrayList(javaRuntimes)); + // JavaRuntime equality is path-based. setAll can therefore retain a stale item when the + // Java installation at an existing path has been upgraded. + this.getItems().clear(); + this.getItems().addAll(javaRuntimes); this.setLoading(false); } else { this.setLoading(true);