我需要从另一个Java应用程序中的单独JVM中调用.jar文件,并且这很耗费CPU资源,因此它应该以后台优先级运行,以避免影响系统的其余部分。是否有任何跨平台的方法来做到这一点?
我需要从另一个Java应用程序中的单独JVM中调用.jar文件,并且这很耗费CPU资源,因此它应该以后台优先级运行,以避免影响系统的其余部分。是否有任何跨平台的方法来做到这一点?
java
命令(或等效命令)的路径名,一个-cp
参数(或等效参数),系统特定的JVM选项等等。nice
来启动JVM。)我不知道如何为外部进程设置优先级。然而,Thread
类有一个 setPriority
方法,所以如果你控制目标应用程序,你可以尝试添加一个开关,告诉应用程序将自己的优先级设置为最低:
theThread.setPriority(Thread.MIN_PRIORITY);
sleep
以卸载CPU。
另一种选择:
如果您将目标.jar
放置在“启动”应用程序的类路径中,您可以在新创建的线程中简单地调用jar文件的main
方法,然后使用上述方法设置优先级。(即使您不控制目标jar文件的源代码,这也应该起作用。)