【问题标题】:How can I give my Java application a unique process name?如何给我的 Java 应用程序一个唯一的进程名称?
【发布时间】:2009-07-20 08:34:20
【问题描述】:

我注意到,当我启动 Netbeans 时,它在任务管理器中显示为 netbeans.exe,因为我自己的所有 Java 应用程序都显示为 java.exejavaw.exe

如何更改它,使我的进程名称显示为 myapp.exe

【问题讨论】:

标签: java windows


【解决方案1】:

进程名是JVM的名字。因此,如果您重命名 jvm,您将拥有另一个进程名称。有一些工具可以为您做到这一点。例如Launch4J

【讨论】:

    【解决方案2】:

    IMO 最好的选择是选择众多开源启动器之一。它们都提供了比 java.exe 和批处理文件更好的部署容器。

    我在 google 上进行了简短搜索后编制了一份清单(没有特别的顺序,可能并不详尽):

    (完全披露:我在 winrun4j 工作)

    【讨论】:

    • winRun4j -- 可作为 eclipse 的插件使用,非常容易处理。还尝试了launch4j,它很好,但无法通过它更改myApp.exe的名称。尽管感谢开源启动器的可行排序列表。
    • WunRun4J 和 JSmooth 似乎不再维护了
    • NSIS 用于构建安装程序,而不是用于构建安装程序。
    【解决方案3】:

    不容易。最简单的方法(但不是很好!)是简单地复制 java.exe(我的系统上只有 68k,所以也许实用!)

    如果您担心识别哪个 java 进程是哪个(例如,消耗内存/CPU 等),请使用标准工具 jps 来识别 Java 进程

    【讨论】:

    • 我已经用我用来运行 eclipse 的 java.exe 完成了这个 - 然后我可以很容易地发现 eclipse 是在消耗资源还是我的程序。
    • 一份java.exe。但是如何更改进程名称呢?
    • 也许将 java.exe 复制到 myjava.exe (对于初学者...)
    【解决方案4】:

    Netbeans 和 Eclipse 都附带一个 .exe 文件,该文件依次启动 JVM。启动虚拟机后,exe itaself 可能什么都不做。我怀疑您还会在任务管理器中看到 NetBeans javaw.exe。

    因此,您需要编写一个执行类似操作的本机 exe(使用一些 Windows 工具)。

    【讨论】:

    • 我相信javaw.exe也是Eclipse的启动器。
    【解决方案5】:

    刚刚在这里回答了这个问题:Get JVM to grow memory demand as needed up to size of VM limit?

    这实际上比人们说的要容易很多(但你必须手边有一个 c/c++ 编译器)。

    【讨论】:

      【解决方案6】:

      主要有两种方法:一种如前所述:使用Launch4j、WinRun4J等工具创建原生Windows启动器。

      另一种似乎更好的方法是使用 Apache Procrun 将 java 应用程序包装为 Windows 服务。在安装服务过程中,我们可以给该进程起一个有意义的名字,比如OurApp.exe。

      我们需要做的就是将 prunsrv.exe 重命名为 OurApp.exe,并将我们的 install|start|stop|uninstall 服务脚本中出现的每个 prunsrv.exe 替换为 MyApp.exe。

      查看更多来自Using Apache Procrun to Rename Process Name of a Java Program in Windows

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-27
        • 1970-01-01
        • 2012-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-15
        相关资源
        最近更新 更多