如果你想在 Linux(或其他 Unix)上使用实用程序服务器盒子,并且它需要 Java,而您服务器上的其他应用程序都不需要 Java,您会不会因为必须安装它而感到厌烦?
也就是说,您是否会看着这种依赖关系并想“臃肿、安全隐患、我必须维护的另一个系统”,或者此时 Java 是否如此安全且无处不在,以至于根本没有麻烦?
答案1
取决于很多因素。
- 它有什么用处?它有多重要?有没有非 Java 的替代品?
- 您为什么犹豫是否安装 Java?
- 该机器的安全配置是什么?
- Sun Java 还是来自 Linux 发行版的 Java(自动更新)?
这基本上是成本和收益之间的权衡。Java 和所有应用程序一样,存在安全漏洞。Sun 会不时更新其 JVM,发布 Java 的 Linux 供应商也会这样做。您打算如何将更新推送到这台机器?它有多重要?如果机器有适当的防火墙和有限的网络守护程序在运行,那么 Java 作为磁盘上的解释器可能没有太大的危险。Java 通常不以 root 身份运行。
几乎所有关于 Java 的争论都可以用在 Perl、Mono、GCC 或任何可以运行任意代码的软件上。此外,大多数 Linux 软件通常由发行版提供,因此您通常可以依赖发行版的更新来确保安全。在这种情况下,Sun Java 与任何第三方软件相同。如果这个第三方实用程序需要一个恰好是 Java 的库,这有关系吗?也许没有关系。
如果您谈论的是 Java 运行服务应用程序(例如 Tomcat 或 JBoss),那么情况会略有不同,因为 Java 会监听网络。在这种情况下,安全风险更高。但是,任何面向网络的应用程序(例如 apache 或 ssh)都存在同样的安全风险。
答案2
我发现我的 Linux 服务器上的应用程序很少需要 Java,而且我对需要 Java 的东西也没有太大的意见。Java 的使用非常广泛,我预计我以后会用到它。这可能是因为我拥有的大多数 Linux 服务器都是用于 ERP 系统的。
我确实遇到了一个问题,不同的应用程序需要不同版本的 JVM 或者非常特定的 JVM 版本。
答案3
这是最小的风险。任何软件都存在一定的风险,所以说完全不用担心是不正确的,但相比其他任何东西,我对 Java 不再有特别的担忧。但在 Java 的早期,情况有所不同。
答案4
我将 Java 与 Python、Perl、Ruby、PHP、Mono 或任何需要运行时的东西归为同一类别。只要它不需要我去寻找一些与打包版本冲突的自定义类、插件或模块,安装它对我来说没有任何问题。
也就是说,作为 Java 应用程序的系统管理员往往会花费一些时间,因为系统管理员宁愿直接发现错误,而不是阅读 3 页“在堆栈中......”错误来查找“空字符串”之类的错误。