Exécution de Java à distance en utilisant PowerShell
-
12-10-2019 - |
Question
Quand je lance PowerShell dans une session à distance (etsn {servername}
), je peux parfois sembler pour exécuter des processus Java, même le plus simple:
[chi-queuing]: PS C:\temp> java -cp .\hello.jar Hello
Error occurred during initialization of VM
Could not reserve enough space for object heap
Hello.jar
est un "Bonjour, monde!" application qui devrait simplement imprimer "Bonjour" à sortie standard .
Alors, la question est, est-il spécial quelque chose sur les processus en cours d'exécution de l'autre côté d'une session PowerShell? Y at-il quelque chose spécial sur la façon dont fonctionne la machine virtuelle Java qui pourrait ne pas permettre un traitement comme celui-ci? La mémoire est allouée sur l'ordinateur distant, non? Voici une lecture sur la mémoire physique disponible:
[chi-queuing]: PS C:\temp> $mem = Get-wmiobject -class Win32_OperatingSystem
[chi-queuing]: PS C:\temp> $mem.FreePhysicalMemory
1013000
Mais, quand je le bureau à distance au serveur et demander à l'OS la quantité de mémoire libre, il est, il dit sans mémoire physique 270 Mo. Faites-moi savoir ce que vous pensez!
La solution
D'après ceci: http://msdn.microsoft.com/en-us/ bibliothèque / aa384372 (VS.85) .aspx
MaxMemoryPerShellMB Indique la quantité maximale de mémoire allouée par décortiqués, y compris les processus enfants du shell. La valeur par défaut est 150 Mo .
Augmentation Max mémoire par Shell MB
winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="1000"}'
Autres conseils
J'ai une réponse différente à partager avec vous les gars. Je me suis retrouvé dans la même situation et de plus en plus pour Java.exe min / max de mémoire ou à l'aide winrm n'a pas résolu mon problème.
Je compare deux serveurs:. Un travail et un ne fonctionne pas
J'utilisé ce lien https: // technet.microsoft.com/en-us/library/ff520073%28v=ws.10%29.aspx pour vérifier ma Management Foundation de Windows qui est nécessaire pour exécuter winrs et aussi powershell à distance.
le résultat: Les deux serveurs exécutant Windows Server 2008 R2. Un serveur exécutant WMF 2.0, une course WMF 3.0.
À ma grande surprise, le serveur en cours d'exécution 2.0 fonctionnait et celui qui exécute 3.0 était pas!
Ma solution: je mis à jour le 3.0 WMF à 4,0
Juste un FYI: nous avons subi les mêmes symptômes, et a eu une enquête sans fin sur la base des deux autres réponses. La solution réelle pour nous changeait jdk1.8.0_31 à jdk1.8.0_51.