Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何优化小型Java命令行程序的启动时间?_Java - Fatal编程技术网

如何优化小型Java命令行程序的启动时间?

如何优化小型Java命令行程序的启动时间?,java,Java,可能重复: 在这一天中,我必须执行一系列小而快速的Java命令行程序。在Windows上,要从命令行运行一个简单的Java程序(如Hello World),由于启动Java.exe进程的开销,有时需要大约5秒钟。执行程序需要一秒钟,但启动程序的开销在总执行时间中占主导地位。有没有办法优化这一点 是否有类似于Java shell的东西可以用来执行进程中的程序?与Python shell类似?您可以编写自己的shell。您可以编写一个命令行程序来嵌入这些“实用程序”的所有功能。启动它,让它继续运行

可能重复:

在这一天中,我必须执行一系列小而快速的Java命令行程序。在Windows上,要从命令行运行一个简单的Java程序(如Hello World),由于启动Java.exe进程的开销,有时需要大约5秒钟。执行程序需要一秒钟,但启动程序的开销在总执行时间中占主导地位。有没有办法优化这一点


是否有类似于Java shell的东西可以用来执行进程中的程序?与Python shell类似?

您可以编写自己的shell。您可以编写一个命令行程序来嵌入这些“实用程序”的所有功能。启动它,让它继续运行,然后通过您决定的语法进行查询。

启动时间慢是java长期存在的问题之一;但情况一直在改善。一件可行(但复杂)的事情是保持一个长时间运行的java进程来处理命令。使用较轻的客户端(可能用脚本编写)向长时间运行的服务器发送命令。

这可能有些过分,但您可以设置一个应用程序服务器,如Tomcat或Glassfish,并在服务器中运行程序。据我所知,Javaservlet的最初目的之一是消除与传统CGI程序相关的启动延迟

我对Java了解不多,所以我不知道是否有更简单的解决方案可用。但是Tomcat等人已经可以使用了,所以您不需要编写自己的服务器程序


编辑:其他人指出了一个类似的问题,该问题的一个答案提到了这一点,这似乎是解决您的问题的近乎完美的解决方案。

另一种选择可能是尝试运行Groovy shell来动态调用类中的
main
方法。它可以很好地运行普通Java和Groovy语法代码。

这两个答案(seand和gd1)都是很好的解决方案。这并不像看上去那么难。您可以使用Process类,或者如果您正在做一些基本的事情,您可以(可能)编译成机器代码。祝你好运,这两种解决方案我都很幸运。在Windows上有一个“Java QuickStarter”(或类似名称)。你可能想试试。