2008-11-05 7 views
14

Immer, wenn ich Java-Anwendung ausführen, wird es im Windows Task-Manager angezeigt java.exe oder javaw.exe. Wie man java.exe oder javaw.exe Prozess ohne Wrapper durch andere Programmiersprachen umbenennt.Wie java.exe/javaw.exe Prozess umzubenennen?

+0

Warum möchten Sie? –

+0

Einfach zu identifizieren, wenn viele Java-Anwendungen in der gleichen Zeit ausgeführt werden –

+0

So cool wie das klingt, wenn Sie Java Foo und Java-Bar von der Befehlszeile aus ausführen würden, würden sie nicht in der gleichen JVM und damit in die gleiche java.exe? – SCdF

Antwort

14

Wenn Sie durch einen Blick auf Prozessnamen verwechselt werden, die alle gleich sind (java.exe), versuchen Sie, Verwendung Process Explorer statt Task-Manager, und zeigt die Befehlszeile Feld. Auf diese Weise können Sie die Klasse oder jar Argumente sehen, die einen Prozess von einem anderen unterscheiden.

+0

Wow! Gute Empfehlung –

+1

Command Line-Spalte ist auf dem regulären Task-Manager – Zzirconium

3

Ich glaube, Ihre beste Wette ist es, einen Vor-Time-Compiler wie Excelsior JET zu verwenden, um eine ausführbare Datei zu erzeugen. Als they mention können Sie stattdessen auch einen benutzerdefinierten Laucher oder Wrapper verwenden.

+0

Der zweite Link hat eine praktische Liste von freien und nicht freien java-ausführbaren Wrappern. –

7

könnten Sie jSmooth verwenden:

JSmooth ein Java Executable Wrapper ist. Es erstellt native Windows-Startprogramme (Standard .exe) für Ihre Java-Anwendungen.

+1

+1 Reale Lösung für ein echtes Problem! – Ramon

+0

Es ist nur ein Wrapper für das zugrunde liegende Jar, das immer noch auf eine JVM geladen wird. – Mordechai

3

In einfacher Weise und schlecht Stil, können Sie java.exe oder javaw.exe kopieren (Datei ausführen) und umbenennen, um neue Prozessnamen, die Sie wollen.

+1

so einfach und so schlecht :) – karlipoppins

5

Ich vermute, Betriebssysteme sind im Allgemeinen nicht sehr gern Prozesse, die versuchen, ihr "Image" umzubenennen. Wenn dies möglich wäre, würde es zum Beispiel für einen Virus sehr einfach sein, einen legitimen Prozess auszugeben.

Übrigens können Sie auch "jps.exe" verwenden, um alle Java-Prozesse und ihre zugehörige Hauptklasse aufzulisten. "jps.exe" befindet sich im Verzeichnis bin Ihrer Java-Installation.

0

Es gibt hauptsächlich zwei Ansätze: Einer ist wie andere beschrieben: mit Launch4j, WinRun4J, um native Windows-Launcher zu erstellen.

Ein anderer Ansatz, der besser scheint, ist die Verwendung von Apache Procrun, um die Java-Anwendung als Windows-Dienst einzubinden. Während des Installationsvorgangs können wir dem Prozess einen aussagekräftigen Namen wie OurApp.exe geben.

Alles, was wir tun müssen, ist, prunsrv.exe in OurApp.exe umzubenennen und jedes Auftreten von prunsrv.exe in unseren Installations- | Start | Stopp | Service-Skripten zu MyApp.exe zu ersetzen.

Mehr von Using Apache Procrun to Rename Process Name of a Java Program in Windows

0

alten Thread aber wenn jemand noch fragt ... Wenn Sie die javapackager mit den -name MyTestApp -native image Fahnen verwenden wird es eine native Laufzeitbild mit dem ausführbaren MyTestApp.exe für Sie generieren und dies ist, wie es wird aussehen wie in den Task-Manager mit dem Standardsymbol:

task_manager_screenshot

Nun Verpackung als eigenständige Anwendung kann oder kann nicht sein, was Sie wollen. Es hat sowohl Vor- als auch Nachteile: https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#A1307236

Verwandte Themen