15

I've updated java from 8 to 9-ea and gradle from 2.13 to 3.4.1. Below is the gradle --version output.

------------------------------------------------------------
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

while compiling below error is encountered:

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.

and the output of gradle --stacktrace is below:

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

when I set

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"

as suggested at different places, issue remains the same.

Kindly help me out in resolving the issue.

UPDATE: Changed GRADLE_OPTS to (wrapped)

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

Got the following error:

Error: Could not find or load main class java.lang=ALL-UNNAMED
Caused by: java.lang.ClassNotFoundException: java.lang=ALL-UNNAMED
Ryan Lundy
  • 204,559
  • 37
  • 180
  • 211
Pallav Jha
  • 3,409
  • 3
  • 29
  • 52
  • The `--add-opens` syntax seems to be slightly off: Unless things changed, there should be no `=` after `--add-opens` - see [here](http://stackoverflow.com/a/41265267/2525313). – Nicolai Parlog Mar 17 '17 at 08:55
  • 1
    I think Groovy 2.x doesn't work yet with JDK9. This being said, you can't run Gradle with JDK9 but you can use it to compile code targeting JDK9, that is Gradle must run with JDK8 or JDK7, compiler options in the buld file can be set to JDK9 – Andres Almiray Mar 17 '17 at 09:01
  • @Nicolai After removing '=' I got the above mentioned error. – Pallav Jha Mar 17 '17 at 09:21

5 Answers5

7

Upgrading Gradle to 4.10.2 version and Java JDK 8 to 1.8.0_191 version worked for me.

Hope it helps!

Genarito
  • 3,027
  • 5
  • 27
  • 53
5

I was able to make gradle work using Java 9-ea by running the following terminal command:

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

-Added this to /etc/profile so that it runs on startup

NathanAck
  • 351
  • 3
  • 9
2

3 years later, 2020:

I could build my project with both ./gradlew build and gradle build (v 6.2.1 and 6.5), but IntelliJ Idea gave me:

Execution failed for task ':compileJava'.
> java.lang.ExceptionInInitializerError (no error message)

I tried to File--Invalidate Caches/Restart, but that did not help, at least by itself. Then I reloaded the gradle project (the leftmost top icon in the Gradle window) and run the Tasks--application--run task from the Gradle window. It worked, and then "Run" worked too (no surprise here, the button seems to repeat the last run).

dazza5000
  • 7,075
  • 9
  • 44
  • 89
18446744073709551615
  • 16,368
  • 4
  • 94
  • 127
2

When I hit this error rerunning with the argument --stacktrace produced a much more intelligible error message in one of the exceptions that was causing this problem in my build script.

The challenge with debugging this is that it happens so early in Gradle (the initialization phase) that not a lot of error message information is available, so it is best to try to debug it from the stacktrace.

Even if you don't get a good message from one of the exceptions, the classes and methods from the stack should give some indication of what Gradle was doing at the time just before it threw.

Sooth
  • 2,834
  • 23
  • 26
  • For example, in the OP example with `--stacktrace` the valuable part is: `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` – Sooth Dec 07 '22 at 17:25
1

Gradle - java.lang.ExceptionInInitializerError

It can be because of [Could not find tools.jar]

I figured it out when downgraded com.android.tools.build:gradle

yoAlex5
  • 29,217
  • 8
  • 193
  • 205