2008-11-05 6 views
14

Toujours lorsque j'exécute l'application java, il affichera dans Windows Task Manager est java.exe ou javaw.exe. Comment renommer java.exe ou javaw.exe sans wrapper par d'autres langages de programmation.Comment renommer le processus java.exe/javaw.exe?

+0

Pourquoi voulez-vous? –

+0

Facile à identifier quand de nombreuses applications Java s'exécutent en même temps –

+0

Aussi cool que cela puisse paraître, si vous deviez exécuter java Foo et java Bar depuis la ligne de commande, ne fonctionneraient-ils pas dans la même JVM et donc dans le même java.exe? – SCdF

Répondre

14

Si vous êtes confus en regardant les noms de processus qui sont tous les mêmes (java.exe), essayez d'utiliser Process Explorer au lieu de Gestionnaire des tâches, et afficher le champ ligne de commande . De cette façon, vous pouvez voir la classe ou jar arguments qui différencient un processus d'un autre.

+0

Wow! Bonne recommandation –

+1

colonne de ligne de commande est disponible sur le gestionnaire des tâches régulières – Zzirconium

3

Je crois que votre meilleur pari est d'utiliser un compilateur d'avance comme Excelsior JET pour produire un exécutable. Comme they mention, vous pouvez également utiliser un laucher ou un wrapper personnalisé à la place.

+0

Le deuxième lien contient une liste pratique d'encapsuleurs exécutables java gratuits et non-libres. –

7

Vous pouvez utiliser jSmooth:

JSmooth est un wrapper Java Executable. Il crée des lanceurs Windows natifs (.exe standard) pour vos applications Java.

+1

+1 Une vraie solution à un vrai problème! – Ramon

+0

C'est juste un wrapper pour le jar sous-jacent, qui est encore chargé dans une JVM. – Mordechai

3

De manière simple et de mauvais style, vous pouvez copier java.exe ou javaw.exe (exécuter le fichier) et le renommer en un nouveau nom de processus.

+1

si facile et si mauvais :) – karlipoppins

5

Je soupçonne que les systèmes d'exploitation ne sont généralement pas très friands des processus qui tentent de renommer leur «image». Si cela était possible, il serait par exemple très facile pour un virus d'usurper l'identité d'un processus légitime. Par ailleurs, vous pouvez également utiliser "jps.exe" pour lister tous les processus Java et leur classe principale correspondante. "jps.exe" se trouve dans le répertoire bin de votre installation Java.

0

Il existe principalement 2 approches: l'une est comme les autres décrites: en utilisant Launch4j, WinRun4J pour créer des lanceurs Windows natifs.

Une autre approche qui semble la meilleure est d'utiliser Apache Procrun pour emballer l'application Java en tant que service Windows. Pendant le processus de service d'installation, nous pouvons donner au processus un nom significatif tel que OurApp.exe. Tout ce que nous devons faire est de renommer prunsrv.exe en OurApp.exe et remplacer chaque occurrence de prunsrv.exe dans nos scripts de service d'installation | start | stop | myApp.exe.

Voir plus de Using Apache Procrun to Rename Process Name of a Java Program in Windows

0

fil vieux, mais si quelqu'un se demande encore ... Si vous utilisez le javapackager avec les drapeaux -name MyTestApp -native image il va générer une image d'exécution native avec l'exécutable MyTestApp.exe pour vous et c'est la façon dont il ressembler dans le Gestionnaire des tâches avec l'icône par défaut:

task_manager_screenshot

maintenant, l'emballage en tant que aUTONOME application peut ou ne peut pas être ce que vous voulez. Il a à la fois des avantages et des inconvénients: https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html#A1307236

Questions connexes