由「程序包org.graalvm.compiler.replacements.nodes不存在」拓展的知識

前言

還記得上週更新完軟件出現顯卡不兼容的問題,而後,這周也出現了新的問題,固然了,值得慶幸的是,此次的問題和系統一毛錢關係都沒有,此次是程序出現了小問題,因而乎,我便獲得了這樣一條結論:個人Linux系統對關機「過敏」。html

錯誤信息


當我按照教程按照往常的操做啓動springboot時,意外發生了,出現了以前沒見過的錯誤(自從更換了Liunx系統後,一直在處理報錯,畢竟Liunx系統大多數時候靠命令行操做,不像Windows用鼠標點點點,有的時候操做不當就各類出錯,)
可是,用久了以後會發現Linux讓人上癮,命令行操做是真的好用。java


屏幕截圖_4.png


報了這麼多ERROR,主要的問題就一個:缺了個程序包node


屏幕截圖_1.png

解決辦法


不得不說Linux還挺人性化的,還給出瞭解決的辦法,,省的本身再折騰了spring


屏幕截圖_2.png


一共給了兩種辦法,方法一直接給出解決方法,那就先看看是啥。編程

要查看錯誤的完整堆棧跟蹤,請使用-e開關從新運行Maven。

    [錯誤]使用-X開關從新運行Maven以啓用完整調試日誌記錄。

    [錯誤]

    [錯誤]有關錯誤和可能的解決方案的詳細信息,請閱讀如下文章:

高興的太早了,這只是查看調試日誌的方法,具體的解決方法應該在下面的網站裏。後端


屏幕截圖_5.png


先看看這個網站是幹啥的吧springboot


屏幕截圖_3.png


與許多其餘錯誤不一樣,此異常不是由Maven核心自己生成的,而是由插件生成的。根據經驗,插件使用此錯誤來表示生成失敗,由於項目的依賴項或源有問題,例如編譯或測試失敗。maven

異常的具體含義取決於插件,所以請查看其文檔。許多常見Maven插件的文檔能夠經過咱們的插件索引訪問。編程語言


說白了就是沒裝插件,而後找了半天也沒找到插件,沒辦法,只能Google了性能


屏幕截圖_6.png

遺憾的是沒有人發佈過這個問題的解決辦法,只能看看下面的詞條裏都有啥內容了。

拓展

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就是其中的一種吧。


屏幕截圖_7.png

以後也看到了這樣的回答,OpenJDK8已經添加了GraalVM,可是爲何還會報錯就不知道了

結局


此次的事件能夠說是烏龍事件了,在沒有找到解決辦法許久以後,我找宜衡學長問了問啥問題,最終的結果是,不知道啥時候在哪引用了這個包,多是不當心點錯了吧,刪除後就麼得問題了。


總結

此次的烏龍事件致使我作了不少無用功,可是,也積累了經驗,出錯要回歸代碼,光看解決方法沒多大用,還有就是要多查,多看,本身查出解決方法並解決問題才能記得住,只靠別人沒有多大進步。

相關文章
相關標籤/搜索