如何更改/分配java .jar的进程名称

时间:2011-01-10 18:56:25

标签: java linux bash minecraft

我在Linux下运行Minecraft,涉及运行可执行的.jar文件。这意味着它在ps下显示为“java”,而不是“minecraft”。我想为它指定进程名称“minecraft”。

环顾四周,我找到了以下关于通过bash分配进程名称的提示:

how to change the name of a Java application process?

exec -a goodname java ...

我经常跑:

java -cp ~/Games/Minecraft/Minecraft.jar net.minecraft.LauncherFrame

所以尝试制作一个bash脚本:

#!/bin/bash
exec -a minecraft java -cp ~/Games/Minecraft/Minecraft.jar net.minecraft.LauncherFrame

但是当我运行它时,它仍然在ps命令下显示为“java”。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

它对我有用。我没有用java测试过,但我测试了sleep

victor@vz:~$ exec -a minecraft sleep 1m &
[1] 3858
victor@vz:~$ ps x | grep mine
 3858 pts/2    S      0:00 minecraft 1m
 3860 pts/2    S+     0:00 grep --color=auto mine
victor@vz:~$ 

然而,据我所知,这似乎只是一个整容变化:

  

victor @ vz:〜$ help exec exec:exec   [-cl] [-a name] [command [arguments   ...]] [重定向...]       用给定的命令替换shell。

Execute COMMAND, replacing this shell with the specified program.
ARGUMENTS become the arguments to COMMAND.  If COMMAND is not specified,
any redirections take effect in the current shell.

Options:
  -a name pass NAME as the zeroth argument to COMMAND

参考OP对此答案的评论:我刚刚在带有java的远程计算机上测试过它:

victorz@exa:~$ javac test.java # spits out an Administrator.class file among others
victorz@exa:~$ exec -a minecraft java Administrator &
[1] 13142
victorz@exa:~$ ps x | grep mine
13142 pts/1    Sl     0:00 minecraft Administrator
13161 pts/1    S+     0:00 grep --color=auto mine
victorz@exa:~$ 

也许您没有使用x切换到ps?除非我使用x开关,否则我无法匹配。