减少 Java 和 Scala 应用程序启动时间的方法已经在这里和这里讨论过。建议的解决方案之一是使用客户端-服务器方法与Nailgun或简单的手写服务器通过 TCP 套接字与netcat进行通信。
一方面,Nailgun 就是为此目的而设计的。另一方面,它的最后一个版本 0.7.1 是在 2005 年,我有点担心开发是否停止以及它有多稳定。netcat 似乎是一个非常标准的工具,可在许多 Linux/Unix 系统上使用。但是这两个系统对我来说都是新的,所以我想知道我的观察是否正确,以及使用 Nailgun 与 netcat 为 Java 应用程序提供快速命令行界面的其他优点和缺点是什么?
PS 你可能想知道为什么要改进启动时间,因为它已经很合理了(在我的机器上大约 100 毫秒),或者为什么不使用 C/C++ 来代替。第一个是因为应用程序将被执行多次(例如,从 bash 脚本中的循环中)并且不幸的是这个使用场景无法更改,第二个是因为这个控制台程序将只是现有片段的替代接口(CLI)用 Java 编写的软件。