Убедитесь, что программа, которую вы пытаетесь «обнаружить» с помощью jps (и jstack, между прочим), запускается без установки параметра java.io.tmpdir
или установки по умолчанию системы.
Существует рядошибки в Sun Developer Network местоположения временных каталогов не должны быть жестко запрограммированы , Исправлено для 6938627 прерываний визуального мониторинга, когда -Djava.io.tmpdir и Сделать временный каталог использовать свойство Java.io.tmpdir , которые актуальны здесь.
История: Java Java Update 6 22 использовала жестко закодированный временный каталог для хранения данных, собранных для использования jps и jstack.Программы jps и jstack знали, где искать.
Однако из-за того, что кто-то поднял «ошибку» в Java 6 Update 23, он «исправил» ее, чтобы вместо этого использовать java.io.tmpdir параметр времени выполнения java.Теперь по умолчанию используется системное местоположение, которое было «жестко закодированным».Но если вы установите опцию при вызове вашей Java-программы, она будет использовать ее вместо этого.Результат: jps и jstack смотрят туда, где ожидают, и ничего не находят.
Поэтому решение состоит в том, чтобы убедиться, что для параметра java.io.tmpdir задано значение по умолчанию системы (например, вMac:
> java -Djava.io.tmpdir=$TMPDIR javamain
)
при вызове вашей программы.Тогда jps и jstack найдут его.
Мой коллега Глин Нормингтон описывает это в своем блоге .Очевидно, в Java 6 обновление 25.
исправлено.