这个问题是对这个问题的后续回答:https://stackoverflow.com/questions/7235228/java-jar-open-with-windows-explorer-continually-spawns-explorer-processes。我也有同样的问题,现在想知道为什么它确实发生了,但是如何让它停止!
显然,过去某个时候,我将计算机上的 .JAR 文件的扩展名更改为 Windows 资源管理器。我不知道为什么,因为我知道只需将扩展名更改为 .zip 即可。可能由于某种原因,这种方法没有奏效,而我却表现得很愚蠢。无论如何,现在我似乎正在遭受 Windows 7 中永久“故障”的困扰。基本上,Windows 7 不允许将已与 Windows 资源管理器关联的内容重新关联(我猜它们只是文件夹?)。也许这就是原因。
我真的希望我的 JAR 文件不要再产生 967 个 Windows 资源管理器实体,并且每次我忘记右键单击并选择“打开方式”时,我的计算机都几乎会陷入崩溃的境地。
我的问题是我不知道这个“注册表编辑器”是什么(我的意思是我知道它们的意思但不知道它们指的是什么程序)并且我不知道在哪里可以找到它们所指的这个文件夹。
如果可能的话,我希望得到一个非常简单的解释,说明应该导航到哪个文件夹并删除它以重置损坏的 JAR 文件关联没有删除或重置任何其他文件关联。我宁愿不必重新安装 Windows 或类似的东西。我知道这本身不是一个编程问题,但这对我来说是一个非常严重的问题,我希望它能得到解决。
答案1
来自您链接的论坛:
- 运行注册表编辑器
- 浏览到 \HKEY_USERS\S-1-5-21-(带破折号的随机数字)\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts(无论哪个文件扩展名被损坏,即“.jpg”)\
- 删除名为“UserChoice”的文件夹
- 正如拉胡尔所说:注册表编辑器是
regedit.exe
程序,您可以通过 启动它Win+R
,或者转到%windir%
(最有可能c:\Windows
)并执行该文件。 - 在注册表编辑器中,选择
File->export
,选择all
而不是selected branch
,保存此文件,它将允许您在犯错误时恢复注册表(只需双击该文件)。 \HKEY_USERS\S-1-5-21-(random numbers with dashes)\
是用户的注册表S-1-5-21-(random numbers with dashes)
(这是 Windows 的 ID,而不是用户名),如果您要修复当前用户,则可以转到\HKEY_CURRENT_USER\
。然后转到Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jar
- 删除名为“UserChoice”的文件夹
- 重新启动资源管理器**
- 如果这不起作用,您可以转到
HKEY_CLASSES_ROOT
并删除.jar
“文件夹”(在注册表中,这称为键)。这可能会删除与.jar
所有用户的文件的关联- 重新启动资源管理器**
- 如果这也不起作用,您可以尝试
.jar
通过按下CTRL+F
、键入.jar
、仅选择keys
并单击搜索来搜索。然后删除所有 .jar 键。这可能会删除.jar
所有用户与文件的关联,包括他们为自己设置的关联。- 重新启动资源管理器**
- 如果仍然不起作用,请使用您在 2 中保存的文件恢复注册表。我不知道如何帮助您。
** 要重新启动资源管理器,您可以注销并重新登录,或者直接使用任务管理器(ctrl+alt+del
)转到processes
,选择explorer.exe
,然后按del
,然后回答之后stop process
,转到applications
,单击new task...
并输入explorer.exe
,然后单击确定。
如果重新启动资源管理器后,jar 文件没有与任何内容关联,则需要重新安装 java,或者右键单击 .jar 文件,然后选择,open with
然后转到 java 安装文件夹,然后选择javaw.exe
。
笔记:如果您遇到其他文件类型,请按照相同的说明操作,.jar
用您遇到的扩展名替换。以下情况可能会出现一些问题.exe
(可能需要在命令行安全模式下启动)和.reg
(在注册表编辑器中选择导入,而不是双击文件来恢复注册表。)
编辑:您也可以尝试编辑HKEY_CLASSES_ROOT\jarfile\shell\open\command\(default)
并设置它,"C:\Program Files\Java\jre1.8.0_131\bin\javaw.exe" -jar "%1" %*
这应该随着您的jre / jdk的位置而改变(例如javaw.exe或java.exe参见这里在步骤 5 之前