Не удалось запустить приложение (ошибка CreateProcess = 87), невозможно использовать сокращенный обход пути к классам - PullRequest
29 голосов
/ 24 мая 2010

Когда я запускаю наше приложение в Eclipse в Windows, я получаю следующую ошибку:

Исключительная ситуация при выполнении командной строки.

Невозможно запустить программу ..: Ошибка CreateProcess = 87, Неверный параметр

В прошлом я решил это, укоротив CLASSPATH.

Теперь я пришел к тому, что больше не могу сокращать CLASSPATH и хотел бы знать, есть ли другие обходные пути.

http://support.microsoft.com/kb/830473, по-видимому, указывает, что максимальная длина строки командной строки в Windows XP составляет 8191 символ, и единственным решением является сокращение имен папок, уменьшение глубины деревьев папок, использование файлов параметров и т. Д.

Ответы [ 10 ]

16 голосов
/ 24 мая 2010

Эта страница eclipsecoding FAQ подтверждает вашу диагностику:

Когда CLASSPATH становится слишком длинным, программа не может быть запущена (по крайней мере, под Windows) - попробуйтесократить ваш путь к классу.В случае с плагином, вы можете попытаться удалить ненужные необходимые плагины.

И у вас есть здесь поток подробности ошибок журнала.

Так как выМожно запустить Eclipse, но не приложение, я бы проверил, не слишком ли много плагинов включено в конфигурацию запуска.Не могли бы вы проверить, добавили ли только необходимые плагины ?

12 голосов
/ 30 сентября 2011

В качестве обходного пути:

  1. Откройте конфигурацию запуска затмения для задачи, которая не выполняется.
  2. Выберите вкладку пути к классам, выберите путь к классам по умолчанию, нажмите кнопку «Изменить ..»
  3. Установите флажок «Включить только экспортированные записи».

Это позволило мне обойти эту проблему в Eclipse 3.6 (Helios)

2 голосов
/ 22 ноября 2011

Это определенно проблема из-за слишком длинного пути к классу, из-за которого командная строка превышает свой максимальный предел.решить, сократить ваш путь к классу.Если вы используете Maven (как я, например, в Jive development), измените местоположение вашего .m2, изменив maven settings.xml

<settings>
  <localRepository>c:/.m2/repository</localRepository>
</settings>

, а затем переместите репозиторий.из каталога пользователя, но убедитесь, что settings.xml и settings-security.xml (если применимо) все еще находятся в каталоге User.Таким образом, путь к классу больше не будет показывать c: \ Documents and Settings \ username.m2 снова и снова, а вместо этого c: .m2, что позволяет значительно уменьшить путь к классам и, следовательно, длину команд.Помните, что в Windows вы не можете создать каталог (самостоятельно) с именем .m2, поэтому вам нужно вырезать каталог, вставить его в c: и затем скопировать его обратно в папку пользователя

1 голос
/ 11 марта 2014

Поскольку у меня была та же проблема с Eclipse Helios (единственной версией, официально поддерживаемой нашим отделом), и мне было очень трудно решить эту проблему, вот решение:

Установите последнюю версию Eclipse (в моем случае 4.3.2 сделал работу).

Эта проблема была зарегистрирована как ошибка Eclipse: https://bugs.eclipse.org/bugs/show_bug.cgi?id=327193, и теперь она исправлена.

Надеюсь, это поможет будущим пользователям, которые зайдут на эту страницу.

1 голос
/ 06 ноября 2012

Это известная ошибка в Eclipse: Ошибка 327193 - [patch] Запуск командной строки превышает предел команды создания процесса в Windows

Это будет исправлено в Eclipse e4 4.3, выпущенном в 2013 году. Это не было сочтено достаточно важным для исправления в 3.4.2. Но во вложениях к ошибке вы можете найти несколько классов-заменителей, чтобы исправить вашу версию Eclipse.

1 голос
/ 24 февраля 2012

Используйте динамическую ссылку, которую можно легко создать с помощью juncion (http://technet.microsoft.com/en-us/sysinternals/bb896768). Создайте ссылку для своего проекта и добавьте ее, чтобы затмить через нее. использование, например: md d: \ shortname junction d: \ shortname \ d: \ my \ очень \ long \ long \ long \ long \ long \ long \ projectnamefolder

1 голос
/ 21 ноября 2011

Я имел дело с той же проблемой на Eclipse, поэтому по этой причине я решил попробовать тот же проект на Intellij, просто чтобы узнать, была ли это проблема IDE.

Удивительно, но Intellij обнаруживает эту проблему (длинный путь к классу) и показывает мне диалог, рекомендующий мне использовать функцию динамического пути к классам. После включения этой опции проблема исчезла.

Что делает флаг dynamic.classpath: Что делает флаг dynamic.classpath? (Настройки проекта IntelliJ)

Итак, теперь мой вопрос: есть ли способ сделать то же самое на Eclipse? кажется простым и элегантным решением этой проблемы, вместо того, чтобы вручную удалять все ненужные зависимости.

0 голосов
/ 04 февраля 2014

Я столкнулся с той же проблемой, проект ссылался на файлы jar для сборки. Предположим, что tools-1.6.jar собран и добавлен как зависимость. Позже может быть изменен исходный код для tools-1.6.jar и не выполнена #mvn clean install.

Я выполнил чистую сборку и обновил зависимость maven, ошибка была устранена.

0 голосов
/ 02 августа 2013

Одно из решений, которое у меня есть для Eclipse, - это закрыть определенные проекты, которые разрешены с помощью Workspace Resolution, и вместо этого разрешить их из локального репозитория Maven. В любом случае у меня это сработало

0 голосов
/ 04 апреля 2011

Я столкнулся с той же проблемой. Попытка запустить страницу альбома не удалась, что бы я ни пытался. Я проверил содержимое моей директории .plugins в рабочей области. Я заметил много индексных файлов в каталоге de org.eclipse.jdt.core. Я переименовал этот каталог, и теперь процесс записок можно запустить снова.

...