如果你想在你的 Linux(或其他 Unix)服务器上使用一个实用程序,并且它需要 Java,而你的服务器上没有其他应用程序需要 Java,你会因为必须安装它而被关闭吗?
也就是说,您是否看到这种依赖并认为“膨胀,安全隐患,我必须维护的另一个系统”,或者在这一点上,Java 是如此安全和无处不在,以至于它根本没有问题?
如果你想在你的 Linux(或其他 Unix)服务器上使用一个实用程序,并且它需要 Java,而你的服务器上没有其他应用程序需要 Java,你会因为必须安装它而被关闭吗?
也就是说,您是否看到这种依赖并认为“膨胀,安全隐患,我必须维护的另一个系统”,或者在这一点上,Java 是如此安全和无处不在,以至于它根本没有问题?
取决于很多事情。
这基本上是成本和收益之间的权衡。与所有应用程序一样,Java 也存在安全漏洞。Sun 时不时地更新他们的 JVM,发布 Java 的 Linux 供应商也这样做。您打算如何将更新推送到这台机器?它有多重要?如果机器有适当的防火墙和有限的网络守护进程运行,Java 作为磁盘上的解释器可能不会有太大的危险。Java 通常不以 root 身份运行。
几乎任何关于 Java 的争论都可以关于 Perl、Mono、GCC 或任何可以运行任意代码的软件。此外,大多数 Linux 软件通常由发行版提供,因此您通常可以依靠发行版的更新来保证安全。在这种情况下,Sun Java 将与任何第三方软件相同。如果这个第三方实用程序需要一个恰好是 Java 的库,这有关系吗?也许不吧。
如果您谈论的是运行服务应用程序(例如 Tomcat 或 JBoss)的 Java,那么情况会略有不同,Java 会在其中侦听网络。在这种情况下,安全风险更高。但是对于任何面向网络的应用程序,例如 apache 或 ssh,您都存在同样的安全风险。
我发现我的 linux 服务器上没有应用程序需要 java 的情况非常罕见,而且我对需要 java 的东西没有太大的问题。它被广泛使用,我希望我会在某个时候需要它。这可能是因为我拥有的大多数 linux 服务器都是用于 ERP 系统的。
我确实有不同的应用程序需要不同版本的 JVM 或非常特定版本的 JVM 的问题。
这是最小的风险。任何软件都包含一些风险,所以说它完全没有问题是不正确的,但与其他任何东西相比,我不再对 Java 有特别的担忧。在 Java 的早期,情况有所不同。
我查看了该依赖项并认为“膨胀,需要维护的另一个系统,并且可能是 PITA 安装”。我不认为有安全隐患。
我将 Java 与 Python、Perl、Ruby、PHP、Mono 或任何需要运行时的东西归为一类。只要它不需要我去寻找一些与打包版本冲突的自定义类、插件或模块,我安装它就没有问题。
也就是说,作为 Java 应用程序的系统管理员往往会有点耗时,因为系统管理员宁愿直接出错,而不是阅读 3 页的“堆栈中...”错误来查找“空字符串”之类的错误。
是的。我会三思而后行。如果我没有其他 Java 应用程序已经在运行,我会寻找替代方案。
如果我帮不上忙,我宁愿不要在我的服务器上安装和配置另一个系统。不过,同样的原因也适用于其他一切——如果我的服务器上不需要电子邮件 MTA,我就不会安装。如果我不运行任何 Ruby 应用程序,我就不会安装 Ruby。
但是,如果我已经安装并运行了 java,我会安装新的应用程序而不必担心。(但这不是你问的!)
应该注意的是,Java 4 / 1.4 已达到使用寿命,不再受支持。
Java 5 / 1.5 将于今年 10 月终止服务
http://java.sun.com/products/archive/eol.policy.html