Createprocess error 206 имя файла или его расширение имеет слишком большую длину android studio

Обновлено: 19.09.2024

Я пытался включить более длинные пути в Windows regedit, но все еще сталкивался с проблемой. Пожалуйста помоги!

СТРОИТЕЛЬСТВО НЕ УДАЛОСЬ через 7 мин. 38 сек. 107 действенных задач: 11 выполнено, 96 актуально

Как выглядит ваш код?

Это проект Android с кодом Java и Kotlin. Но мои коллеги, использующие тот же код, не сталкиваются с этой проблемой.

Попробуйте снизить уровень структуры каталогов. Поместите свой проект как можно ближе к корневому каталогу

Спасибо Sagar и Pinegulf

Вы выяснили, какая зависимость вызывает это?

как вы решили эту проблему? (У вас такой же) поместили проект ближе к корневому каталогу? это не работает для меня

Ответы 5

Я предполагаю, что вы пользователь Windows, существует ограничение на путь к файлу 8191 в Windows XP и выше.

Самый простой способ сократить путь к файлу, например изменить папку проекта на D: \, изменить путь к проекту и всегда использовать символы ASCII для имени папки. Символы UTF-8 используют 2-3 байта. или переместить бесполезную зависимость. или перейти на платформу MAC. ;)

Причина в том, что на этапе компиляции есть команда типа javac xxxx, объединяющая все пути зависимостей в одну строку.

Спасибо xingjiu, ты спас мне день

Спасибо, это тоже была моя проблема

Ага, это единственный способ, о котором я знаю. Если вы не хотите перемещать все свои вещи, вы все равно можете использовать виртуальный диск, указывающий на вашу исходную папку! См. Этот запись в блоге для подробных объяснений!

Это неверно: Gradle выполняет свои команды с использованием CreateProcess, поэтому максимальный размер команды равен 32 768.

Виртуальный привод у меня работает. Создайте командный файл; subst Z: "D: \ Projects \ Your Project \ . "

Этот обходной путь действительно работает. Не могу поверить, насколько наивны разработчики gradle.

Я переместил свой проект на путь d :, но ошибка все еще та же?

изменение пути не сработает у меня есть много файлов, все еще получающих ошибку. Любое другое решение?

Если вы используете идея intellij, вы можете сократить командную строку, выполнив следующие действия:

Исключение при выполнении командной строки. Не удается запустить программу «C: \ Program Files (x86) \ Java \ jre6 \ bin \ javaw.exe» (в каталоге «C: \ Users \ motiver \ helios_workspace \ TimeTracker»): ошибка CreateProcess = 206, имя файла или расширение: слишком долго

Я немного исследовал, но большинство проблем были связаны с DataNucleus при работе над Google App Engine. Но я не использую ничего отдаленно связанного с Google App Engine. Я делаю небольшой проект с Servlet 3.0 на JBOSS 6. Я использую Hibernate 4.1.2 для ORM и RESTEasy, чтобы открыть веб-службу. Я создал файл util, в котором есть метод main (), который в основном удаляет и воссоздает схему. Я запускаю методы main (), когда мне нужна чистая база данных для целей тестирования. Он отлично работал на Tomcat 7, но перестал работать, когда я перешел на JBoss 6.

Приветствуются любые подсказки или решения.

Простого (в пару кликов или простой команды) решения этой проблемы не существует.

  • Уменьшите путь к классам
  • Используйте каталоги вместо файлов jar
  • Используйте упакованные файлы jar, которые содержат все другие jar-файлы, используйте переменную classpath внутри файла манифеста, чтобы указать на другие jar-файлы
  • Используйте специальный загрузчик классов, который считывает путь к классам из файла конфигурации.
  • Попробуйте использовать один из прикрепленных патчей в документе с отчетом об ошибке
  • Используйте собственную оболочку, например. муравей

Обновление : после июля 2014 года есть способ лучше (благодаря ответу @ Brad-Mace ниже :

Если вы создали свой собственный файл сборки вместо использования Project -> Generate Javadocs , вы можете добавить useexternalfile="yes" в задачу Javadoc, которая разработана специально для решения этой проблемы.

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

Это из-за вашего длинного имени каталога проекта, которое в целом дает вам очень длинный CLASSPATH . Либо вам нужно уменьшить количество jar-файлов, добавленных в CLASSPATH (убедитесь, что удаляются только ненужные jar-файлы), либо лучше всего уменьшить каталог проекта и снова импортировать проект. Это уменьшит CLASSPATH . У меня это сработало.

У меня такая же ошибка в студии Android. Мне удалось решить эту проблему, запустив Build Clean Project в среде IDE.

Я получаю указанную ниже ошибку при запуске ant deploy .

Исправлено, запустив перед ним команду " ant clean ".

Правильный ответ из этой ветки был правильным ответом для моего особого случая. Укажите путь к папке ORM для datanucleus, безусловно, уменьшите компиляцию пути java.

Если вы используете Android Studio, попробуйте опцию Invalidate Caches / Restart .. в меню File

Для меня это был неправильный путь JDK. Убедитесь, что у вас правильный путь к файлу JDK.

Файл -> Структура проекта

enter image description here

Я столкнулся с этой проблемой при попытке выполнить запрос JPQL в консоли Hibernate / JPA в IntelliJ 2020.2

Добавление этого в мой .idea / workspace.xml исправило его.

Ошибка:

CreateProcess error=206, The filename or extension is too long

Исправление кода Gradle:

Я использую устаревшую версию плагинов Gradle, и этот плагин решил проблему для меня.

Использование (подробнее см. В источнике):

Фрагмент скрипта сборки для плагинов DSL для Gradle 2.1 и новее

Фрагмент сценария сборки для использования в более старых версиях Gradle или там, где требуется динамическая конфигурация

Ошибка CreateProcess = 206, имя файла или расширение слишком длинное.

Если вы используете инструмент сборки Gradle, а исполняемый файл находится в каталоге build / libs вашего приложения. run.sh -> создайте этот файл в корневом каталоге вашего проекта и скопируйте в него приведенный ниже сценарий, затем перейдите в git bash и введите run.sh, затем введите. Надеюсь это поможет!

Надеюсь это поможет!!

У меня такая же ошибка. Пробовали решения, такие как очистка, восстановление, недействительность кеша, повторный запуск и т. Д., Но ничего не работает.

Я только что создал новую папку с коротким именем и скопировал все файлы (папку приложения, файлы gradle и т. Д.) В новую папку. Открыл приложение в студии Android и работает нормально.

Это происходит из-за того, что DataNucleus иногда перезаписывает аргументы с множеством путей.

исключение произошло при выполнении командной строки. Не удается запустить программу "C:Program файлы (x86)Javajre6binjavaw.exe " (в каталоге "C:Usersmotiverhelios_workspaceTimeTracker"): CreateProcess error=206, имя файла или расширение слишком длинное

Я немного исследовал, но большинство проблем были связаны с DataNucleus при работе над Google App Engine. Но я не использую ничего, отдаленно связанного с Google App Engine. Я делаю небольшой проект с сервлетом 3.0 на JBOSS 6. Я использую Hibernate 4.1.2 для ORM и RESTEasy для предоставления веб-службы. Я создал файл util, который имеет метод main (), который в основном удаляет и повторно создает схему. Я запускаю main () methos, когда мне нужна чистая база данных для целей тестирования. Он отлично работал на Tomcat 7, но он перестал работать, когда я переехал в JBoss 6.

любой намек или решение были бы весьма признательны.

нет простого (как в пару кликов или простой команды) решения этой проблемы.

  • уменьшить путь к классу
  • используйте каталоги вместо файлов jar
  • используйте упакованные файлы jar, которые содержат все другие банки, используйте переменную classpath внутри файла манифеста для укажите на другие банки
  • используйте специальный загрузчик классов, который считывает путь к классам из файла конфигурации
  • попробуйте использовать один из прикрепленных патчей в документе отчета об ошибке
  • используйте собственную оболочку, например ant
  • перейти к IntelliJ (обновление: как указывает @nitind, это не вариант)

обновление: после июля 2014 года есть лучший способ (благодаря @Brad-ответ Мейса ниже:

Если вы создали свой собственный файл сборки вместо использования Project -> Generate Javadocs , то вы можете добавить useexternalfile="yes" к задаче Javadoc, которая предназначена специально для решения этой проблемы.

Если вы создаете свой собственный файл build, а не с помощью Project -> Generate Javadocs вы можете добавить useexternalfile="yes" до javadoc задач, которая предназначена специально для решения этой проблемы.

отвечая на мой собственный вопрос здесь, чтобы решение не было похоронено в комментариях. Я экспортировал проект как runnable jar из eclipse и сделал командную строку "java-jar MyJar.jar " и работает отлично

пожалуйста, скачайте патч для Eclipse Juno или новее:

  1. после загрузки резервное копирование существующих eclipse / Плагины / org.затмение.JDT, предназначенным.launching_3.*.Джар
  2. копировать и вставлять классы в патч в организацию.затмение.JDT, предназначенным.пусковой Яс (заменять существующий файл.)
  3. Перезапустить Eclipse.

У меня такая же ошибка при вызове Maven.

основной причиной моей проблемы была classpath был очень огромный. Обновление пути к классам исправило проблему.

Я сегодня столкнулся с этой проблемой и смог решить ее с помощью этот плагин Gradle

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

java-jar-Dserver.port=8080 build/libs / APP_NAME_HERE.Джар

это происходит из-за того, что DataNucleus иногда перезаписывает Аргументы многими путями.

вы должны перезаписать их следующим образом:

-enhancerName ASM-api JDO-pu MediaToGo

надеюсь помочь вам!

правильный ответ из этой темы был правильным ответом для моего особого случая. Укажите путь к папке ORM для datanucleus, безусловно, уменьшите компиляцию пути java.

Я получил ошибку ниже, когда я запускаю'развернуть АНТ'

исправлено с помощью run'очистить муравей', прежде чем он.

Я получил ту же ошибку в Android studio. Я смог решить это, запустив Build ->Очистить Проект в IDE.

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

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

Исключение при выполнении командной строки. Не удается запустить программу «C: \ Program Files (x86) \ Java \ jre6 \ bin \ javaw.exe» (в каталоге «C: \ Users \ motiver \ helios_workspace \ TimeTracker»): ошибка CreateProcess = 206, имя файла или расширение слишком долго

Я немного исследовал, но большинство проблем были связаны с DataNucleus при работе над Google App Engine. Но я не использую ничего отдаленно связанного с Google App Engine. Я делаю небольшой проект с Servlet 3.0 на JBOSS 6. Я использую Hibernate 4.1.2 для ORM и RESTEasy, чтобы открыть веб-службу. Я создал файл util, в котором есть метод main (), который в основном удаляет и воссоздает схему. Я запускаю методы main (), когда мне нужна чистая база данных для целей тестирования. Он отлично работал на Tomcat 7, но перестал работать, когда я перешел на JBoss 6.

Мы будем благодарны за любые подсказки или решения.

Я хочу понять, C:\Program Files (x86)\Java\jre6\bin\javaw.exe длинный или другой C:\Users\motiver\helios_workspace\TimeTracker . У меня такая же проблема. Потомство: у меня была похожая ситуация, но с простым корпоративным приложением, развернутым на WLS, и клиентом из Eclipse. Я заметил, что путь к классам был огромен, поскольку Eclipse по умолчанию включал всю библиотеку WLS (все jar-файлы). Я удалил его и добавил просто weblogic.jar (только обязательный). После этого все заработало. Итак, по моим наблюдениям, просто удалите ненужные банки.

Простого (в пару кликов или простой команды) решения этой проблемы не существует.

  • Уменьшите путь к классам
  • Используйте каталоги вместо файлов jar
  • Используйте упакованные файлы jar, содержащие все другие jar-файлы, используйте переменную classpath внутри файла манифеста, чтобы указать на другие jar-файлы
  • Используйте специальный загрузчик классов, который считывает путь к классам из файла конфигурации
  • Попробуйте использовать один из прикрепленных патчей в документе с отчетом об ошибке
  • Используйте собственную оболочку, например муравей

Обновление : после июля 2014 года есть способ лучше (благодаря ответу @ Brad-Mace ниже :

Если вы создали свой собственный файл сборки вместо использования Project -> Generate Javadocs , вы можете добавить useexternalfile="yes" в Javadoc задачу, которая разработана специально для решения этой проблемы.

Как у IntelliJ не возникнет этой проблемы, если это полностью из-за длины пути к классам, используемого при запуске JVM? Это может быть только проблема с затмением, я могу запустить приложение с помощью maven. В 2014 году этот ответ неверен, и ответ @Brad Mace правильный. «Уменьшить путь к классам» - хороший намек, но позвольте мне немного уточнить это: в моем случае я попытался создать проект maven, и -classpath аргумент был сгенерирован, чтобы содержать все зависимости. Так, что - то вроде этого вышло: C:\Users\myself\.m2\repository\…;C:\Users\myself\.m2\repository\…[…tons more] . Перемещение моего локального кеша репозитория maven в свое дело: путь к D:\m2 классам сократился до D:\m2\…;D:\m2\… - бинго! Не забудьте указать localRepository путь в конфигурации maven.

Если вы создаете свой собственный файл сборки, а не используете, Project -> Generate Javadocs вы можете добавить useexternalfile="yes" к javadoc задаче, которая разработана специально для решения этой проблемы.

Сегодня я столкнулся с этой проблемой, и я смог решить ее с помощью этого плагина Gradle

ЕСЛИ вы, как и я, понятия не имеете, что такое Gradle, но вам нужно запустить бэкэнд, чтобы выполнять свою работу с внешним интерфейсом, вам нужно найти файл build.gradle, который вызывается для запуска вашего сервера BE, и добавить его в вершина:

Теперь я получаю «Имя основного класса не настроено и не может быть разрешено», несмотря на то, что оно было установлено attributes["Main-Class"] Я пробовал использовать плагин, но безрезультатно. Проблема все еще не решена. Пожалуйста, предложите

Отвечая на свой вопрос здесь, чтобы решение не было утоплено в комментариях. Я экспортировал проект как запускаемый jar из eclipse и выполнил командную строку «java -jar MyJar.jar», и он отлично работает

Это не специально для eclipse, но я решил обойти это, создав символическую ссылку на мой репозиторий maven и указав ее на что-то вроде «C: \ R». Затем я добавил в свой файл settings.xml следующее:

Путь к репозиторию maven способствовал возникновению проблем с длиной на моей машине с Windows.

** введите описание изображения здесь **

В intellij есть опция «сократить командную строку», выбрать «JAR manifest» или «@argFiles» решит проблему, в основном это поместит ваш длинный путь к классу в файл jar или временный файл.

Вопрос старый, но актуальный. Я часто сталкиваюсь с этой ситуацией, когда к моей команде присоединяется новый участник или к существующему коду добавляется новый сегмент кода. Простой обходной путь, которому мы следуем, - это «уменьшить путь к классам» путем перемещения вверх по каталогам.

Как уже упоминалось, это не относится к затмению. Я также сталкивался с этой проблемой в IntelliJ Idea 14 и 2018.

После долгих исследований я нашел решение - установить

в javc файла сборки ant.

Вот так теперь выглядит мой Ant build javac. Чтобы узнать больше о fork, обратитесь к документации ant.

Это чертовски эффективный ответ, который я нахожу. Спасибо

В отчете об ошибке ошибка 327193 считается исправленной, но недавно это случилось со мной с Eclipse Kepler 4.3.2.

Загрузите патч для Eclipse Juno или новее:

  1. После загрузки создайте резервную копию существующего eclipse / plugins / org.eclipse.jdt.launching_3. *. Jar
  2. Скопируйте и вставьте классы из патча в org.eclipse.jdt.launching JAR (замените существующие файлы).
  3. Перезапустите Eclipse.
Это сработало для меня. Обратите внимание, что применение этого метода удалило мои установки JDK Java из установленных JRE. Пришлось снова добавить их. Осталась только 1 установка JRE.

java -jar -Dserver.port = 8080 build / libs / APP_NAME_HERE.jar

Чтобы решить эту проблему:

Если вы используете Eclipse:

Переместить репозиторий .m2 в

c: \ Перейдите в Eclipse> Windows / Preferences / Maven / User Settings -> Создайте свой собственный файл settings.xml с его содержимым:

Если вы используете IntelliJ: перейдите в IntelliJ> щелкните правой кнопкой мыши на «pom.xml»> maven> создайте «settings.xml»

с его содержанием:

У меня такая же ошибка при вызове Maven.

Основная причина моей проблемы заключалась в том, что она classpath была очень огромной. Обновление пути к классам устранило проблему.

Есть несколько способов обновить большой путь к классам, как упоминалось в этом: Как установить длинный путь к классам Java в Windows?

  1. Используйте подстановочные знаки
  2. Файл аргумента
  3. Путь jar

Поскольку я использую Intellij, они предоставляют возможность использовать файл аргументов, который я использовал.

Очень расплывчатый ответ. Как, черт возьми, вы обновили путь к классам? Есть несколько способов обновить путь к классам, например, подстановочный знак.

Попробуйте добавить это в файл build.gradle ( gradle version 4.10.x ) и убедитесь, что com.xxx.MainClass это класс, в котором находится ваш основной метод:

Вышеупомянутое изменение должно решить проблему, есть другой способ использования run.sh приведенного ниже сценария, который может решить эту проблему, но это будет скорее исправление командной строки, а не запуск в IntelliJ gradle bootRun .

это происходит из-за того, что DataNucleus иногда перезаписывает аргументы с множеством путей.

Вы должны перезаписать их следующим образом:

-enhancerName ASM -api JDO -pu MediaToGo

Надеюсь помочь вам!

Правильный ответ из этой ветки был правильным ответом для моего особого случая. Укажите путь к папке ORM для datanucleus, безусловно, уменьшите компиляцию пути java.

Я получил ошибку ниже, когда запустил " ant deploy "

Исправлено, запустив перед ним команду ant clean .

Что делать, если я использую Android Studio? Я также получаю ту же самую проблему

У меня такая же ошибка в студии Android. Мне удалось решить эту проблему, запустив Build -> Clean Project в IDE.

Это из-за вашего длинного имени каталога проекта, которое в CLASSPATH целом дает вам очень длинный . Либо вам нужно уменьшить количество добавленных jar-файлов CLASSPATH (убедитесь, что удаляются только ненужные jar-файлы), либо лучше всего уменьшить каталог проекта и снова импортировать проект. Это уменьшит CLASSPATH . У меня это сработало.

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

У меня такая же ошибка. Пробные решения, такие как очистка, восстановление, недействительность кеша, повторный запуск и т. Д., Но ничего не работает.

Я только что создал новую папку с коротким именем и скопировал все файлы (папку приложения, файлы gradle и т. Д.) В новую папку. Открыл приложение в студии Android и работает нормально.

Пользовательская версия java - 1.8

В моем случае ошибка проявлялась из-за того, что системная версия java отличалась от версии intellijj / eclipse java. Система и пользователь имели разные версии java. Если вы скомпилируете свой код с использованием одной версии и попытаетесь запустить с использованием другой версии, произойдет ошибка.

Короче говоря, убедитесь, что ваш код скомпилирован и запускается одной и той же версией java.

Ошибка CreateProcess = 206, имя файла или расширение слишком длинное.

Читайте также: