JShell 历史存储在哪里?

Where is JShell history stored?

有人知道 JShell 历史存储在哪里吗(Java-11/Open JDK on Windows-10,但任何配置都可能有用)?我一直在 $HOME$USERPROFILE$APPDATA、...)中四处张望。它是基于文件的吗?

JShell 是基于 JLine 的,对吧?我确实找到了 $JAVA_HOME\legal\jdk.internal.le\jline.md.

JShell 使用 PreferencesStoragePersistentStorage 的一个实现,由 java.util.prefs.Preferences 对象支持。这意味着历史以二进制形式存储,位置取决于操作系统。例如,在 macOS 上,您将在 ~/Library/Preferences/com.apple.java.util.prefs.plist.

中找到历史记录(同样以二进制形式)

在Windows,历史存储在注册表中,可以用regedit打开。路径是HKEY_CURRENT_USER\Software\JavaSoft\Prefs\tool\/J/Shell