2017-03-17 29 views
6

Zaktualizowałem java z 8 na 9-ea i zmieniłem z 2.13 na 3.4.1. Poniżej znajduje się wyjście gradle --version.java.lang.ExceptionInInitializerError z gradle

------------------------------------------------------------ 
Gradle 3.4.1 
------------------------------------------------------------ 

Build time: 2017-03-03 19:45:41 UTC 
Revision:  9eb76efdd3d034dc506c719dac2955efb5ff9a93 

Groovy:  2.4.7 
Ant:   Apache Ant(TM) version 1.9.6 compiled on June 29 2015 
JVM:   9-ea (Oracle Corporation 9-ea+158) 
OS:   Linux 4.8.0-36-generic amd64 

podczas kompilacji poniżej napotkania błędu:

FAILURE: Build failed with an exception. 

* What went wrong: 
java.lang.ExceptionInInitializerError (no error message) 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

i wyjście gradle --stacktrace jest poniżej:

java.lang.ExceptionInInitializerError 
     at org.gradle.initialization.DefaultClassLoaderRegistry.restrictTo(DefaultClassLoaderRegistry.java:40) 
     at org.gradle.initialization.DefaultClassLoaderRegistry.restrictToGradleApi(DefaultClassLoaderRegistry.java:36) 
     at org.gradle.initialization.DefaultClassLoaderRegistry.<init>(DefaultClassLoaderRegistry.java:30) 
     at org.gradle.internal.service.scopes.GlobalScopeServices.createClassLoaderRegistry(GlobalScopeServices.java:213) 
     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.base/java.lang.reflect.Method.invoke(Method.java:547) 
     at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) 
     at org.gradle.internal.service.DefaultServiceRegistry.invoke(DefaultServiceRegistry.java:462) 
     at org.gradle.internal.service.DefaultServiceRegistry.access$1200(DefaultServiceRegistry.java:84) 
     at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod(DefaultServiceRegistry.java:805) 
     at org.gradle.internal.service.DefaultServiceRegistry$FactoryService.create(DefaultServiceRegistry.java:761) 
     at org.gradle.internal.service.DefaultServiceRegistry$ManagedObjectProvider.getInstance(DefaultServiceRegistry.java:598) 
     at org.gradle.internal.service.DefaultServiceRegistry$SingletonService.get(DefaultServiceRegistry.java:643) 
     at org.gradle.internal.service.DefaultServiceRegistry.applyConfigureMethod(DefaultServiceRegistry.java:253) 
     at org.gradle.internal.service.DefaultServiceRegistry.findProviderMethods(DefaultServiceRegistry.java:214) 
     at org.gradle.internal.service.DefaultServiceRegistry.addProvider(DefaultServiceRegistry.java:352) 
     at org.gradle.internal.service.ServiceRegistryBuilder.build(ServiceRegistryBuilder.java:52) 
     at org.gradle.launcher.cli.BuildActionsFactory.createGlobalClientServices(BuildActionsFactory.java:148) 
     at org.gradle.launcher.cli.BuildActionsFactory.runBuildWithDaemon(BuildActionsFactory.java:108) 
     at org.gradle.launcher.cli.BuildActionsFactory.createAction(BuildActionsFactory.java:83) 
     at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.createAction(CommandLineActionFactory.java:249) 
     at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:239) 
     at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:217) 
     at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:33) 
     at org.gradle.launcher.cli.JavaRuntimeValidationAction.execute(JavaRuntimeValidationAction.java:24) 
     at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33) 
     at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22) 
     at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:210) 
     at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:174) 
     at org.gradle.launcher.Main.doAction(Main.java:33) 
     at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45) 
     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
     at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.base/java.lang.reflect.Method.invoke(Method.java:547) 
     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:23) 
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected java.lang.Package[] java.lang.ClassLoader.getPackages() accessible: module java.base does not "opens java.lang" to unnamed module @6c7a164b 
     at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:335) 
     at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:278) 
     at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:196) 
     at java.base/java.lang.reflect.Method.setAccessible(Method.java:190) 
     at org.gradle.internal.reflect.JavaMethod.<init>(JavaMethod.java:42) 
     at org.gradle.internal.reflect.JavaMethod.<init>(JavaMethod.java:32) 
     at org.gradle.internal.reflect.JavaMethod.<init>(JavaMethod.java:36) 
     at org.gradle.internal.reflect.JavaReflectionUtil.method(JavaReflectionUtil.java:223) 
     at org.gradle.internal.classloader.FilteringClassLoader.<clinit>(FilteringClassLoader.java:49) 
     ... 40 more 

kiedy ustawić

export GRADLE_OPTS="-Dorg.gradle.jvmargs=--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED" 

jak zasugerowano w różny miejsca, wydaj rem tak samo.

Uprzejmie proszę mi pomóc w rozwiązaniu problemu.

UPDATE: Zmieniono GRADLE_OPTS do

export GRADLE_OPTS="-Dorg.gradle.jvmargs=--add-opens java.lang=ALL-UNNAMED --add-opens java.util=ALL-UNNAMED --add-opens java.io=ALL-UNNAMED" 

uzyskałem następujący błąd:

Error: Could not find or load main class java.lang=ALL-UNNAMED 
Caused by: java.lang.ClassNotFoundException: java.lang=ALL-UNNAMED 
+0

Opcja 'składnia --add-opens' wydaje się być nieco off: Jeśli wszystko się zmieniło, nie powinno być' = 'after' --add-opens' - patrz [tutaj] (http://stackoverflow.com/a/41265267/2525313). – Nicolai

+0

Myślę, że Groovy 2.x nie działa jeszcze z JDK9. W związku z tym nie można uruchamiać programu Gradle przy użyciu JDK9, ale można go użyć do kompilacji kodu kierującego do JDK9, tj. Gradle musi działać z JDK8 lub JDK7, opcje kompilatora w pliku buld można ustawić na JDK9 – aalmiray

+0

@Nicolai Po usunięciu ' = "Mam wyżej wymieniony błąd. –

Odpowiedz

1

udało mi się zrobić Gradle pracę przy użyciu Java 9-EA, uruchamiając następującą komendę terminala:

export JDK_JAVA_OPTIONS='--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED' 

-via https://github.com/gradle/gradle/issues/1095

-Dodano to do/etc/profile tak, że działa on na starcie