如果启动了一个Java程序,它将进入系统进程 - 监视名称java.许多Java程序很难区分.因此,如果存在方式,设置名称将会很好,这将显示在进程监视器中.我知道这可能在不同的操作系统上有所不同.
一个简单的方法是,如果java解释器支持设置名称的开关,如下所示:
java -processname MyProgram -jar MyProgram
Run Code Online (Sandbox Code Playgroud)
但我找不到这样的开关,所以它可能不存在.Java中用于设置进程名称的API也可以.
那么,你有什么建议吗?
我们发布了一个Java应用程序,其内存需求可能会有很大差异,具体取决于它正在处理的数据大小.如果未设置最大VM(虚拟内存)大小,则JVM通常会在大数据上因GC失败而退出.
我们希望看到的是,JVM请求更多内存,因为GC无法提供足够的内存,直到总可用VM耗尽为止.例如,以128Mb开始,并在GC失败时增加几何(或其他一些步骤).
JVM("Java")命令行允许显式设置最大VM大小(各种-Xm*命令),并且您认为这将被设计为足够的.我们尝试在随应用程序提供的.cmd文件中执行此操作.但是如果你选择任何特定的数字,你会得到两种不良行为之一:1)如果你的数量足够小,可以在大多数目标系统上工作(例如,1Gb),那么它对于大数据来说不够大,或者2)如果如果它非常大,JVM拒绝在实际VM小于指定的系统上运行.
如何设置Java以在需要时使用可用的VM,而不事先知道这个数字,并且在启动时没有抓住它?
是否有命令行参数来设置JVM向Windows任务管理器报告的标题?我的所有java进程只显示为'javaw.exe',其描述为'Java(TM)Platform SE二进制'.如果我可以设置一些-param ="这就是日食",这将是很好的,例如我可以很容易地将它们区分开来.它会阻止我经常杀死我的IDE而不是例如tomcat.