我在四核计算机上运行 64 位 Windows 7。当我java -version
在命令窗口中运行时,我得到
java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)
我遇到了一个问题,当我尝试运行 jar 文件时,它们无法打开。我在驱动器中搜索了java.exe
,发现了许多副本。大多数都在程序文件夹的子文件夹中。我发现一个java.exe
只有 20K。大多数其他文件都在 2000K 范围内,但大小和日期各不相同。
删除其中任何一个是否安全?程序如何确定要运行哪个副本java.exe
(或javaw.exe
)?我可以安全地清除其中任何一个吗?
答案1
全部保留。
如果程序文件夹的子文件夹中有一个java.exe
,那么可以安全地假设该文件夹所在程序java.exe
使用的是该版本。
计算机并不局限于整个系统中只有一个具有给定名称的可执行文件。这与拥有两个同名的 Word 文档没有什么不同:它们必须位于不同的文件夹中,但它们不会冲突。当程序尝试打开它时,它知道要查找哪个文件夹。通常,程序员会手动指定查找位置(例如“运行bin/java.exe
”)。其他时候,它会在操作系统提供的文件夹列表中查找可能找到可执行文件的文件夹。两种情况都有可能;如果程序与 捆绑在一起java.exe
,则很可能是前者。
一般来说,如果一个程序捆绑了类似的东西java.exe
,你应该假设它使用那个特定的 java.exe
。不要到处删除程序目录中的文件。这样做的后果可能非常糟糕。
答案2
是的,您可以保留任意数量的 Java。您可以在一个机器上安装多个不同版本的 Java,此外,工具/应用程序可能附带自己的版本。
查看各个版本的存储位置(哪个目录)以确定它们存在的原因。有些版本可能安装在 Java 目录中,C:\"Program Files"\Java\jdk1.7.0_07\bin\
而其他版本可能安装在特定应用程序的目录中。
要找出当您java
从命令行发出命令时哪一个是“活动的”,请echo %path%
在命令提示符中输入并注意列出了哪个 Java 目录。
(请注意,如果您删除 java.exe 的某个版本,那么几乎肯定还有一组(大得多的)附近的 JAR 文件也应该被删除,如果您的目的是节省磁盘空间的话。)