找不到方法'sun.misc.Unsafe.defineClass(Ljava / lang / String; [BIILjava / lang / ClassLoader; Ljava / security / ProtectionDomain;)Ljava / lang / Class

时间:2019-04-30 10:27:43

标签: java spring-boot gradle

我正在使用jdk-10.0.2gradle 4.7,在构建项目时遇到此错误。

    Unable to find method 'sun.misc.Unsafe.defineClass(Ljava/lang/String;[BIILjava/lang/ClassLoader;Ljava/security/ProtectionDomain;)Ljava/lang/Class;'.

Possible causes for this unexpected error include:
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
Re-download dependencies and sync project (requires network)

The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
Stop Gradle build processes (requires restart)

Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.

In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

3 个答案:

答案 0 :(得分:1)

我遇到了同样的问题(但使用JDK 11):

  

无法找到方法   'sun.misc.Unsafe.defineClass(Ljava / lang / String; [BIILjava / lang / ClassLoader; Ljava / security / ProtectionDomain;)Ljava / lang / Class;'。

您的版本为gradle 4.7

我的gradle-wrapper.properties文件是:

    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists
    distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip

为解决此问题,我使用参数distributionUrl更改为4.9版本的包装器:

 distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip

并重建项目,没有任何错误。

答案 1 :(得分:0)

  

Gradle的.gradle文件中的依赖项存在问题。   或pom.xml文件(如果您使用的是Maven)。   可能有很多原因:   版本,或两次冲突声明相同的依赖项。   要不然   检查您添加到库中的jar_file版本。

答案 2 :(得分:-1)

您是否指定了here中提到的模块依赖性?从JDK 9开始,Unsafe API似乎已被隐藏。

因此,添加

module jdk.unsupported {
    exports sun.misc;
    opens sun.misc;
    ...
}

对您的项目可能会有帮助。