การสร้าง Gradle ล้มเหลวด้วย Java IOException

Sep 04 2020

ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันพยายามรันไฟล์ gradle.bat หรือคำสั่ง gradle สำหรับเรื่องนั้น (เช่น gradle -version)

FAILURE: Build failed with an exception.

* What went wrong:
java.io.IOException: The filename, directory name, or volume label syntax is incorrect

Gradle เวอร์ชัน: 4.10.2.2

JDK: "1.8.0_261"

ระบบปฏิบัติการ: Windows 10 (x64)

อาจมีอะไรผิดพลาดไปบ้าง?


PS: ฉันได้ลองแบบเดียวกันกับ Gradle เวอร์ชันใหม่กว่า (6.6.1) มันสร้างข้อผิดพลาดที่คล้ายกัน

FAILURE: Build failed with an exception.

* What went wrong:
java.io.IOException: The filename, directory name, or volume label syntax is incorrect

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.UncheckedIOException: java.io.IOException: The filename, directory name, or volume label syntax is incorrect
        at org.gradle.internal.FileUtils.canonicalize(FileUtils.java:204)
        at org.gradle.initialization.BuildLayoutParameters.findGradleUserHomeDir(BuildLayoutParameters.java:51)
        at org.gradle.initialization.BuildLayoutParameters.<init>(BuildLayoutParameters.java:39)
        at org.gradle.launcher.cli.converter.BuildLayoutConverter.defaultValues(BuildLayoutConverter.java:42)
        at org.gradle.launcher.cli.DefaultCommandLineActionFactory$WithLogging.execute(DefaultCommandLineActionFactory.java:205)
        at org.gradle.launcher.Main.doAction(Main.java:35)
        at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:50)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:60)
        at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:37)
        at org.gradle.launcher.GradleMain.main(GradleMain.java:31)
Caused by: java.io.IOException: The filename, directory name, or volume label syntax is incorrect
        at java.io.WinNTFileSystem.canonicalize0(Native Method)
        at java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:428)
        at java.io.File.getCanonicalPath(File.java:618)
        at java.io.File.getCanonicalFile(File.java:643)
        at org.gradle.internal.FileUtils.canonicalize(FileUtils.java:202)
        ... 13 more

คำตอบ

say_n Sep 09 2020 at 17:40

แก้ปัญหาโดยการเพิ่มตัวแปรสภาพแวดล้อม GRADLE_USER_HOME ภายใต้ตัวแปรของผู้ใช้แทนตัวแปรของระบบ