我们可以在生产服务器上卸载 Java 吗?

我们可以在生产服务器上卸载 Java 吗?

Web 服务器上的漏洞扫描告诉我,我的 Java 版本需要更新。我们在此服务器上运行 .NET Web 应用程序,据我所知,没有任何程序使用 Java。如何确定是否可以安全地卸载 Java?我不想只是卸载它然后导致某些程序崩溃。有没有一种简单的方法来检查是否有任何程序依赖于它?

答案1

一种解决方案是更新 Java 以消除漏洞。接下来,编写一个包装 Java 可执行文件的小应用程序(即:将 java.exe 重命名为 java-real.exe,并制作一个名为 java.exe 的应用程序,该应用程序只将所有参数传递给 java.exe 并将调用记录到文件中。一个月后(或您觉得合适的时间),如果日志为空,则卸载 Java。

答案2

你可以使用Systernal 的进程监视器

它将默认列出系统上的所有注册表、文件、进程等活动。

您可以为 Java 设置一个过滤器,让它运行任意长的时间,然后观察您会得到什么样的活动。

例如添加一个过滤器“当路径包含 Java 时则包含”。

您可能还需要“当结果为 SUCCESS 时包含”,这样您就不会尝试一堆不存在的东西。例如,如果从 PATH 变量中调用 java,在找到 java 的实际位置之前,会在 C:\Windows、C:\Windows\System32 等处尝试它。

答案3

在这种情况下我经常尝试这些方法:

find /some/path/ -type f -atime -50    # has any file been accessed (read) in last 50 days?
find /some/path/ -type f -ctime -50    # has any file had attributes changed in last 50 days?
find /some/path/ -type f -mtime -50    # has any file had been modified in last 50 days?

编辑:错过了 Windows 2003 标签...您仍然可以在 cygwin 上使用这些命令。或者运行文件资源管理器 -> F3 -> 搜索全部 -> 按访问时间排序 -> 手动检查 -> 按修改时间排序 -> 手动检查)。如果文件未被访问/修改,则可能意味着它不需要任何东西。

当然,您可以测试卸载,以查看删除软件包是否需要删除其他内容,但这是一个简单的案例。(编辑 W2k3......不那么简单)

答案4

Java 有一些内部跟踪/日志选项,您可以打开并监视日志以查看发生了什么样的活动。

跟踪和日志记录在 Sun 的网站上。

相关内容