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.
Файл -> Структура проекта
Я столкнулся с этой проблемой при попытке выполнить запрос 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 или новее:
- после загрузки резервное копирование существующих eclipse / Плагины / org.затмение.JDT, предназначенным.launching_3.*.Джар
- копировать и вставлять классы в патч в организацию.затмение.JDT, предназначенным.пусковой Яс (заменять существующий файл.)
- Перезапустить 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 или новее:
- После загрузки создайте резервную копию существующего eclipse / plugins / org.eclipse.jdt.launching_3. *. Jar
- Скопируйте и вставьте классы из патча в org.eclipse.jdt.launching JAR (замените существующие файлы).
- Перезапустите Eclipse.
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?
- Используйте подстановочные знаки
- Файл аргумента
- Путь 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 отличалась от версии intellijj / eclipse java. Система и пользователь имели разные версии java. Если вы скомпилируете свой код с использованием одной версии и попытаетесь запустить с использованием другой версии, произойдет ошибка.
Короче говоря, убедитесь, что ваш код скомпилирован и запускается одной и той же версией java.
Ошибка CreateProcess = 206, имя файла или расширение слишком длинное.
Читайте также: