Résoudre l'erreur CreateProcess = 206 lors de l'exécution de Java dans un environnement Windows

Lors du développement avec Java, l'erreur suivante a commencé à se produire et j'en étais assez accro, alors prenez note.

Exception occurred executing command line. 
Cannot run program "C:\Program Files\Java\jre1.8.0_144\bin\javaw.exe" (in directory "C:\Users\ore\myproject"): CreateProcess error=206, The filename or extension is too long

Cause

À première vue, cela n'avait aucun sens, mais la chaîne de chemin de classe spécifiée lors de l'exécution de la commande java (java -cp "c: \ monprojet \ main; c: \ Users \ .gradle \ .. .. Il semble que la cause soit que "Mita-natsu" soit trop long et dépasse le nombre maximum de caractères de l'argument de createProcess dans Windows, 32768.

Faire face

Réduire la bibliothèque

C'est le meilleur si vous pouvez le choisir. Cette fois, c'était impossible car il s'agissait de toutes les bibliothèques nécessaires.

Déplacer le répertoire du projet vers le bas de la hiérarchie

Par exemple, s'il est maintenant dans c: \ Users / ore / nanika / nantoka / are / sore / koko, passez à c: \ Users / ore /. Je pensais que ce serait la prochaine chose la plus simple à faire, mais cela n'a pas fonctionné. La raison est dans le point suivant.

Changer le répertoire personnel de Gradle

Si vous regardez attentivement le chemin de classe spécifié dans la commande java lorsqu'une erreur se produit, il s'agit très souvent de quelque chose comme c: \ Users \ ore \ .gradle \ nantoka_library \ nantoka.jar. J'ai donc déplacé la destination de téléchargement par défaut pour gradle de c: \ Users \ ore \ .gradle vers c: \ .gradle.

Sous Windows, créez GRADLE_USER_HOME dans "Système" -> "Paramètres système avancés" -> "Variables d'environnement" -> Variables d'environnement utilisateur et spécifiez la valeur dans la procédure de C: \ .gradle.

Maintenant, j'ai redémarré l'IDE et l'ai reconstruit et cela a fonctionné. Ce n'est pas une bonne idée, mais si vous en êtes accro, cela vaut peut-être la peine d'essayer.

N'y a-t-il pas une contre-mesure appropriée en premier lieu?

Le problème est que la commande java a un argument trop long, vous pouvez donc l'arrêter. Si vous pouvez utiliser le module Java 9, vous n'avez pas à spécifier un si grand nombre de chemins de classe longs. Cependant, il faudra un certain temps avant que Java 9 ne se généralise et que la bibliothèque le prenne en charge.

Recommended Posts

Résoudre l'erreur CreateProcess = 206 lors de l'exécution de Java dans un environnement Windows
Afficher une erreur détaillée dans Logger lors de l'exécution de Java sur le serveur
Lors de la recherche de plusieurs dans un tableau Java
[Windows] [IntelliJ] [Java] [Tomcat] Créer un environnement pour Tomcat 9 avec IntelliJ
Erreur lors de l'installation de l'ensemble lors de l'exécution de rails neufs
Lorsqu'il y a des variables d'environnement dans les tests Java
Une note quand vous voulez Tuple en Java
Un fichier bat qui utilise Java dans Windows
Lors de l'utilisation d'une liste en Java, java.awt.List sort et une erreur se produit
Comment créer un environnement Java en seulement 3 secondes
Points bloqués lors de l'exécution de vite + Nginx dans l'environnement Docker
Erreur de valeur de vérification survenue dans l'environnement de clustering
Ce que j'ai appris lors de la création d'un serveur en Java
Déploiement d'un environnement Java avec le sous-système Windows pour Linux (WSL)
Difficultés à créer un environnement Ruby on Rails (Windows 10) (SQLite3)
Évitez l'erreur que Yuma a donnée en Java
Utiliser Java Web Start dans un environnement OpenJDK sous Windows
Changer le codage Java dans Windows
Rechercher un sous-ensemble en Java
Construction de l'environnement JavaFX dans Java 13
Erreur lors de la lecture avec java
Ruby ① Création d'un environnement Windows
Compression Zip qui ne brouille pas dans l'environnement Java
Collecte des informations client lorsqu'une erreur se produit dans une application Web
Erreur de non-recherche du symbole lors de la nouvelle classe dans un autre fichier Java
Comment faire fonctionner automatiquement un écran créé en Java sous Windows
Remède pour "Un serveur est déjà en cours d'exécution." Erreur lors de l'exécution des rails s
Évitez les erreurs de code de caractère en java lors de l'utilisation de l'extension VScode RUN-CODE
Comment résoudre l'erreur inconnue apparue lors de l'utilisation de slf4j en Java
J'ai créé un PDF avec Java.
Environnement Java Spring dans vs Code
Encodage lors de l'accès à Windows + Ruby
Créer une base de données dans un environnement de production
Essayez d'exécuter Selenuim 3.141.59 avec eclipse (java)
Paramètres des variables d'environnement Java (Windows, AdoptOpenJDK11)
Un exemple simple de rappels en Java
Essayez d'exécuter AWS X-Ray en Java
Restez coincé dans un Java Primer
Résolution d'une erreur survenue lors de la tentative d'utilisation de Spark dans un environnement où Java 8 et Java 11 coexistent
Ce que j'ai vérifié lorsque j'ai installé Docker Hub dans un environnement domestique Windows 10 mais qu'il n'a pas démarré
Mauvaises habitudes signalées dans les revues de code lorsque Java était débutant
Évitez les erreurs de codage Java qui se produisent lors de l'exécution de FitGen.exe sous Windows japonais
Comment passer un proxy lors du lancement de REST avec SSL en Java
Comment obtenir le chemin absolu d'un répertoire s'exécutant en Java
A propos du renvoi d'une référence dans un Java Getter
Dégradation des performances du conteneur Java dans l'environnement Menikoa
Qu'est-ce qu'une classe en langage Java (3 /?)
Création d'un environnement de développement Lambda avec Eclipse
Appelez l'API de notification Windows en Java
[Création] Un mémorandum sur le codage en Java
Java crée un tableau dans un document Word
Java crée un graphique circulaire dans Excel
Qu'est-ce qu'une classe en langage Java (1 /?)
Créons un environnement de développement Java (mise à jour)
Construction de l'environnement Play Framework 2.6 (Java) avec Eclipse
Erreur de mise en œuvre lors de la mise en œuvre de la validation Spring
Qu'est-ce qu'une classe en langage Java (2 /?)
Essayez d'exécuter Kubernetes Job à partir de Java
Créer une application TODO dans Java 7 Créer un en-tête