如果启动了一个Java程序,它将进入系统进程 - 监视名称java.许多Java程序很难区分.因此,如果存在方式,设置名称将会很好,这将显示在进程监视器中.我知道这可能在不同的操作系统上有所不同.
一个简单的方法是,如果java解释器支持设置名称的开关,如下所示:
java -processname MyProgram -jar MyProgram
Run Code Online (Sandbox Code Playgroud)
但我找不到这样的开关,所以它可能不存在.Java中用于设置进程名称的API也可以.
那么,你有什么建议吗?
在C程序中,我可以编写argv [0],新名称显示在ps列表中.
我怎么能用bash做到这一点?
我们的Java Swing应用程序在Windows上运行,并使用Launch4J包装在exe文件中.
我们想要自定义我们的应用程序进程名称和描述(在Windows的任务管理器中),因为它当前是"javaw.exe"和"Java Platform SE binary"(这对我们的客户来说很困惑).
虽然旧版本的Launch4J可以使用<customProcName>
此更改,但此选项现已不存在,因为它不再适用于Win7.
是否有其他(简单)解决方法来自定义我们的应用程序进程名称和描述?
例如,更改javaw.exe可执行文件名似乎是一种方法(因为我们将其嵌入到包装的exe文件中),但是如何指示launch4j jvm文件名更改?
另一个选择可能是创建一个启动器exe文件:可能是一个矫枉过正?
任何想法/提示都非常受欢迎; 谢谢!
我在Linux下运行Minecraft,它涉及运行可执行的.jar文件.这意味着它在ps下显示为"java",而不是"minecraft".我想为它指定进程名称"minecraft".
环顾四周,我发现以下提示通过bash分配进程名称:
exec -a goodname java ...
Run Code Online (Sandbox Code Playgroud)
我经常跑:
java -cp ~/Games/Minecraft/Minecraft.jar net.minecraft.LauncherFrame
Run Code Online (Sandbox Code Playgroud)
所以尝试制作一个bash脚本:
#!/bin/bash
exec -a minecraft java -cp ~/Games/Minecraft/Minecraft.jar net.minecraft.LauncherFrame
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,它仍然在ps命令下显示为"java".
我究竟做错了什么?