Теперь решено - см. Конец вопроса.
Я пытаюсь отладить процесс Java с помощью отладчика IntelliJ Community Edition.Сокет прослушивает - но когда я пытаюсь подключиться, процесс отладки показывает следующее: «Подключение к целевой ВМ, адрес:«: 8003 », транспорт:« сокет ». Он никогда не устанавливает соединение с ВМ, и я не могу отладить.
Я перешел на 64-битный ПК с Windows 7 - на моем старом компьютере с XP и смог подключить и отладить этот процесс Java (это приложение, которое я создаю и поддерживаю).
Это не дает сбоястандартная ошибка «Отказ в соединении: соединиться», которую вы получите, если не будет никакого процесса для подключения.Netstat также показывает, что порт слушает, когда приложение работает.
TCP 0.0.0.0:8003: 0 LISTENING
Отладка аргументов для приложения -Xrunjdwp: transport = dt_socket, server = y,suspend = n, address = 8003 -Xdebug
Если я попытаюсь запустить сеанс отладки из IntelliJ на удаленной машине, я могу подключиться к процессу, выполняющемуся на моей локальной машине, и выполнить отладку.Если я запускаю приложение Java на удаленном компьютере и использую IntelliJ на своем локальном компьютере, я могу выполнить отладку.Только если я запускаю и отлаживаю на одной и той же машине, она выходит из строя - к сожалению, это то, что мне нужно делать почти все время.
Единственные похожие проблемы, которые я обнаружил, относятся к 2004 году и связаны с файломпути с пробелами, и были NetBeans, а не IntelliJ.Я перестроил и перезапустил свое приложение, не допуская ни пробелов, ни подчеркиваний в пути, ни радости.
Мои настройки отладки intelliJ - отладка моей локальной машины через сокет, порт режима подключения 8003 - извините, как новый пользователь, я могуНе прикрепляйте изображение.
Другие попытки:
- Изменение версий JRE
- Отладка с использованием общей памяти вместо транспорта сокетов
- Я не переустанавливал IntelliJ - я использую ту же сборку, что и мои коллеги-разработчики (10.5 IC 107-105), у которых нет этой проблемы.
- Изменение порта, который прослушивает процесс отладки (с 8003на другие, неиспользуемые в соответствии с netstat)
- Я пытался использовать имя компьютера, IP-адрес и «localhost» для ссылки на ПК в настройках отладки.
Застрял.Любая помощь очень ценится.
Спасибо, Стив
Решено
Что ж, день, когда не удается решить, тогда я нахожу ответ через 20 минут после публикации.Недопустимый символ подписи JNI, обнаруженный только при отладке.Решается добавлением этого аргумента при отладке.
-Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize = true
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6547438
Спасибо запомощь.До сих пор не знаю, почему это будет работать при удаленной отладке, но не локально.