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

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

一种解决scheme是更新Java以消除漏洞。 接下来,编写一个包装java可执行文件的小应用程序(例如:将java.exe重命名为java-real.exe,并创build一个名为java.exe的应用程序,将所有parameter passing给java.exe,并将调用logging到文件中。一个月之后(或者不pipe多长时间,直到你感觉舒服),如果日志为空,卸载Java。

您可以使用Systernal的进程监视器 。

它将默认列出系统上的所有registry,文件,进程等活动。

你可以为Java设置一个filter,让它长期运行,看看你得到了什么样的活动。

比如为“当path包含Java然后包含”添加一个filter。

你也可能想要“当结果成功,然后包括”,这样你就不会在一堆不在那里的事情上进行尝试。 例如,如果在PATHvariables中调用java,在find它实际所在的java之前,会在C:\ Windows,C:\ Windows \ System32等地尝试它。

在这种情况下,我经常试试这些:

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上使用这些命令。 或运行文件资源pipe理器 – > F3 – >全部search – >按访问时间sorting – >手动检查 – >按修改时间sorting – >手动检查)。 如果文件没有被访问/修改,这可能意味着它不被任何东西需要。

当然,你可以testing卸载,看是否删除包需要删除别的东西,但这是一个微不足道的情况 。 (编辑W2K3 …不那么平凡)

什么样的Java被安装?

它只是普通的Java运行时环境还是像Tomcat / JBoss / AnotherApplicationServer这样的服务器端的东西?

当有人浏览网站时,有可能简单地进行清理。 但它也可以被别的东西实际使用; 但是没有简单的方法来说明。

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

请参阅Sun网站上的跟踪和日志logging 。