转载

由“程序包org.graalvm.compiler.replacements.nodes不存在”拓展的知识

前言

还记得上周更新完软件出现显卡不兼容的问题,然后,这周也出现了新的问题,当然了,值得庆幸的是,这次的问题和系统一毛钱关系都没有,这次是程序出现了小问题,于是乎,我便得到了这样一条结论:我的Linux系统对关机“过敏”。

错误信息

当我按照教程按照往常的操作启动springboot时,意外发生了,出现了之前没见过的错误(自从更换了Liunx系统后,一直在处理报错,毕竟Liunx系统大多数时候靠命令行操作,不像Windows用鼠标点点点,有的时候操作不当就各种出错,)

但是,用久了之后会发现Linux让人上瘾,命令行操作是真的好用。

由“程序包org.graalvm.compiler.replacements.nodes不存在”拓展的知识

报了这么多ERROR,主要的问题就一个:缺了个程序包

由“程序包org.graalvm.compiler.replacements.nodes不存在”拓展的知识

解决办法

不得不说Linux还挺人性化的,还给出了解决的办法,,省的自己再折腾了

由“程序包org.graalvm.compiler.replacements.nodes不存在”拓展的知识

一共给了两种办法,方法一直接给出解决方法,那就先看看是啥。

要查看错误的完整堆栈跟踪,请使用-e开关重新运行Maven。

    [错误]使用-X开关重新运行Maven以启用完整调试日志记录。

    [错误]

    [错误]有关错误和可能的解决方案的详细信息,请阅读以下文章:

高兴的太早了,这只是查看调试日志的方法,具体的解决方法应该在下面的网站里。

由“程序包org.graalvm.compiler.replacements.nodes不存在”拓展的知识

先看看这个网站是干啥的吧

由“程序包org.graalvm.compiler.replacements.nodes不存在”拓展的知识

与许多其他错误不同,此异常不是由Maven核心本身生成的,而是由插件生成的。根据经验,插件使用此错误来表示生成失败,因为项目的依赖项或源有问题,例如编译或测试失败。

异常的具体含义取决于插件,因此请查看其文档。许多常见Maven插件的文档可以通过我们的插件索引访问。

说白了就是没装插件,然后找了半天也没找到插件,没办法,只能Google了

由“程序包org.graalvm.compiler.replacements.nodes不存在”拓展的知识

遗憾的是没有人发布过这个问题的解决办法,只能看看下面的词条里都有啥内容了。

拓展

GraalVM

GraalVM是一个高性能的可嵌入多语言虚拟机,目前支持许多编程语言:Java(和JVM语言),JavaScript(包括node.js),Ruby,R,Python和C / C ++以及其他具有LLVM后端的语言。

您可以在此处下载预先构建的GraalVM分发版: https ://www.graalvm.org/downloads 。除此之外,它还包括一个java运行时,一个节点运行时,一个名为Graal.js的JavaScript引擎等。

Graal SDK是多语言API,允许GraalVM使用它可以运行的所有语言实现。这个多语言API打包为一个jar文件: $GRAALVM_HOME/jre/lib/boot/graal-sdk.jar

将该文件作为外部库添加到您的IDEA项目/模块中,将允许IDE找到类似以下的类: org.graalvm.polyglot.Context 以及 org.graalvm.polyglot.Value 与语言互操作所必需的类 ,包括JavaScript实现。

如果您的项目使用Maven,您可以在该文件上添加系统依赖项,maven将在任何 $JAVA_HOME 设置为指向GraalVM分发的系统上找到它 。

<dependency>
    <groupId>org.graalvm</groupId>
    <artifactId>graal-sdk</artifactId>
    <version>1.0.0-rc</version>
    <scope>system</scope>
    <systemPath>${java.home}/lib/boot/graal-sdk.jar</systemPath>
</dependency>

现在,当您 java 从GraalVM发行版运行命令时,必要的文件将自动添加到类路径中。因此,在IDE中运行类似下面的内容不再需要:

import org.graalvm.polyglot.*;
public class Main {
    public static void main(String[] args) {
        Context polyglot = Context.create();
        Value array = polyglot.eval("js", "[1,2,42,4]");
        System.out.println(array.getArrayElement(2).asInt());
    }
}

现在这是因为GraalVM默认启用了Graal.js JavaScript引擎。

如果要在库存JDK上运行它,则需要向类路径添加更多内容。

原文链接

之前在《Head First Java》上读到过java语言编译输出后,靠虚拟机读取与执行字节码,GraalVM就是其中的一种吧。

由“程序包org.graalvm.compiler.replacements.nodes不存在”拓展的知识

之后也看到了这样的回答,OpenJDK8已经添加了GraalVM,但是为什么还会报错就不知道了

结局

这次的事件可以说是乌龙事件了,在没有找到解决办法许久之后,我找宜衡学长问了问啥问题,最终的结果是,不知道啥时候在哪引用了这个包,可能是不小心点错了吧,删除后就么得问题了。

总结

这次的乌龙事件导致我做了很多无用功,但是,也积累了经验,出错要回归代码,光看解决方法没多大用,还有就是要多查,多看,自己查出解决方法并解决问题才能记得住,只靠别人没有多大进步。

原文  https://segmentfault.com/a/1190000021029978
正文到此结束
Loading...