如果您想在Linux(或其他Unix) 服务器上使用实用程序,并且它需要Java,并且您的服务器上没有其他应用程序需要Java,那么您将被closures,您必须安装它吗?
也就是说,你是否看到了这种依赖关系,并认为“膨胀,安全危险,我必须维护的另一个系统”,或者在这一点上Java是如此安全无处不在,完全没有问题?
取决于很多东西。
这基本上是成本和收益之间的折衷。 与所有应用程序一样,Java也存在安全漏洞。 Sun不时更新他们的JVM,而运行Java的Linux厂商也这样做。 你打算如何推送更新到这台机器? 它有多重要? 如果机器具有适当的防火墙并且有限的networking守护进程正在运行,那么Java作为磁盘上的解释器可能不是什么大问题。 Java通常不会以root身份运行。
几乎所有关于Java的参数都可以用Perl,Mono,GCC或任何可以运行任意代码的软件来实现。 此外,大多数Linux软件通常由发行版发行,所以您通常可以依靠发行版的更新来保持安全。 在这种情况下,Sun Java将与任何第三方软件相同。 这个第三方实用程序是否需要一个碰巧是Java的库? 也许不会。
如果您正在讨论运行服务应用程序(如Tomcat或JBoss)的Java,然后Java正在侦听networking,则情况稍有不同。 在这种情况下,安全风险更高。 但是,对于任何面向networking的应用程序(如apache或ssh),您都有相同的安全风险。
我发现非常罕见的是,我的Linux服务器上没有应用程序需要Java,我没有什么需要Java的问题。 它被广泛使用,我希望我会在某个时候需要它。 这可能是因为我所拥有的大多数Linux服务器都是用于ERP系统的。
我确实有不同的应用程序需要不同版本的JVM或非常特定的JVM版本的问题。
这是一个很小的风险。 任何软件都包含一些风险,所以根本不用担心,但是与其他任何东西相比,我对Java再也没有特别的担忧了。 在Java的早期,事情是不同的。
我看着这种依赖性,并认为“膨胀,另一个系统来维护,可能是一个PITA安装”。 我不认为安全隐患。
我把Java放在与Python,Perl,Ruby,PHP,Mono或需要运行时的任何类别相同的类别中。 只要不需要我去找一些与打包版本冲突的自定义类,插件或模块,我就没有安装它的问题。
也就是说,作为一个系统pipe理员与Java应用程序往往是有点费时,因为系统pipe理员宁愿有直接的错误,而不是阅读3页的“堆栈…”错误,以find像“空string”的错误。
是。 我会三思。 在没有其他Java应用程序已经运行的情况下,我会寻找替代scheme。
我宁愿不去安装和configuration我的服务器上的另一个系统的痛苦,如果我无法帮助它。 同样的原因适用于所有其他的东西 – 如果我不需要在我的服务器上的邮件MTA,我不会安装一个。 如果我没有运行任何Ruby应用程序,我不会安装Ruby。
但是,如果我确实已经安装并运行了java,我会安装新的应用程序,而不用担心。 (但这不是你问的!)
应该指出的是,Java 4 / 1.4已经达到了服务寿命,不再被支持。
Java 5 / 1.5将在今年10月份达到服务终止时间