Удаленный запуск Java с помощью PowerShell - PullRequest
8 голосов
/ 20 января 2011

Когда я запускаю PowerShell в удаленном сеансе (etsn {servername}), мне иногда не удается запустить процессы Java, даже самые простые:

[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 - это «Привет, мир!» приложение, которое должно просто напечатать "Hello" на стандартный вывод .

Итак, вопрос в том, есть ли что-то особенное в запущенных процессах на другой стороне сеанса PowerShell? Есть ли что-то особенное в том, как работает виртуальная машина Java, которая может не позволять такое лечение? Память выделяется на удаленном компьютере, верно? Вот показание доступной физической памяти:

[chi-queuing]: PS C:\temp> $mem = Get-wmiobject -class Win32_OperatingSystem
[chi-queuing]: PS C:\temp> $mem.FreePhysicalMemory
1013000

Но когда я удаленный рабочий стол на сервер и спрашиваю ОС, сколько свободной памяти, он говорит, что 270 МБ свободной физической памяти. Дайте мне знать, что вы думаете!

Ответы [ 3 ]

11 голосов
/ 20 января 2011

Согласно этому: http://msdn.microsoft.com/en-us/library/aa384372(VS.85).aspx

MaxMemoryPerShellMB Задает максимальный объем памяти, выделяемый на оболочку, включая дочерние процессы оболочки. По умолчанию 150 МБ .

Увеличение максимального объема памяти на оболочку, МБ

winrm set winrm/config/winrs '@{MaxMemoryPerShellMB="1000"}' 
0 голосов
/ 02 декабря 2015

Просто к сведению: у нас были те же симптомы, и мы провели бесконечное расследование, основанное на двух других ответах.Фактическим решением для нас было изменение jdk1.8.0_31 на jdk1.8.0_51.

0 голосов
/ 07 апреля 2015

У меня есть другой ответ, чтобы поделиться с вами, ребята.Я оказался в той же ситуации, и увеличение минимальной / максимальной памяти для Java.exe или использование winrm НЕ решили мою проблему.

Я сравнил два сервера: один работает, а другой не работает.

Я использовал эту ссылку https://technet.microsoft.com/en-us/library/ff520073%28v=ws.10%29.aspx, чтобы проверить мой Windows Management Foundation, который необходим для запуска WINRS, а также для удаленного PowerShell.

результат: оба сервера работают под управлением Windows Server 2008 R2.Один сервер работает под управлением WMF 2.0, а другой - под управлением WMF 3.0.

К моему удивлению, сервер под управлением 2.0 работал, а сервер под управлением 3.0 НЕ работал!

Мое решение: я обновил 3.0 WMF до4,0!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...