![](/img/trans.png)
[英]java.nio.file.NoSuchFileException while creating a modular jar on Linux using Java 9
[英]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.