簡體   English   中英

java.nio.file.NoSuchFileException:/home/user/java/8.0.181-oracle/jre/lib/jfxrt.jar使用`sbt runMain`執行scala程序時

[英]java.nio.file.NoSuchFileException: /home/user/java/8.0.181-oracle/jre/lib/jfxrt.jar while executing scala program using `sbt runMain`

我正在嘗試使用sbt runMain命令從SBT運行程序。 但是我遇到了錯誤-

[error] java.nio.file.NoSuchFileException: /home/user/java/8.0.181-oracle/jre/lib/jfxrt.jar
[error]     at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
[error]     at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
[error]     at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
[error]     at sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
[error]     at sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:144)
[error]     at sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
[error]     at java.nio.file.Files.readAttributes(Files.java:1737)
[error]     at java.nio.file.FileTreeWalker.getAttributes(FileTreeWalker.java:219)
[error]     at java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:276)
[error]     at java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:322)
[error]     at java.nio.file.Files.walkFileTree(Files.java:2662)
[error]     at java.nio.file.Files.walkFileTree(Files.java:2742)
[error] (Compile / runMain) java.nio.file.NoSuchFileException:  /home/rajkumar/java/8.0.181-oracle/jre/lib/jfxrt.jar
[error] Total time: 12 s, completed Aug 23, 2018 10:21:44 PM

SBT版本詳細信息

 $ sbt about
 [info] This is sbt 1.2.1
 [info] The current project is ProjectRef(uri("file:/home/rajkumar/Coding/Java/ConcurrentProgrammingInScala/"), "concurrentprogramminginscala") 0.1
 [info] The current project is built against Scala 2.12.6

Java版本詳細信息-

$ java -version
  java version "1.8.0_181"
  Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
  Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

另外我在jdk文件夾中的任何地方都找不到jfxrt.jar文件。

$ find . -type f -name jfxrt.jar

該命令不返回任何結果。

fedora版本是-

$ cat /etc/fedora-release 
  Fedora release 28 (Twenty Eight)

為什么會出現此錯誤? 如何解決這個錯誤?

我相信問題在於Java JRE的目錄結構。 顯然,您的jfxrt.jar不在程序認為的位置,這是因為在Java 8中,此jar位於java/<version>/jre/lib/ext/目錄中,而不是java/<version>/jre/lib/ ,這是您的程序在堆棧跟蹤中尋找它的地方。 解決該問題的一種方法是將jfxrt.jar復制到java/<version>/jre/lib/目錄中,以便可以正確找到該文件。

可能存在一個更穩定/安全的解決方案,但是直到我(或其他人)找到這種方式,我才會這樣做。 如果您有任何問題,請發表評論,我會盡力回答。 希望這可以幫助!

編輯:我正在四處搜索,似乎這個問題也應該有助於正確設置路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM