运行 jar 文件时出现 NoSuchFileException
NoSuchFileException when running jar file
当我 运行 访问 src
目录中其他文件的 jar 文件时,我得到以下 RuntimeException
:
Exception in thread "main" java.nio.file.NoSuchFileException:
src\FileToBeAccessed.txt.lck
at sun.nio.fs.WindowsException.translateToIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source)
at sun.nio.fs.WindowsFileSystemProvider.newFileChannel(Unknown Source)
at java.nio.channels.FileChannel.open(Unknown Source)
at java.nio.channels.FileChannel.open(Unknown Source)
at java.util.logging.FileHandler.openFiles(Unknown Source)
at java.util.logging.FileHandler.(Unknown Source)
at Program.main(Program.java:30)
当我直接 运行 它而不构建 jar 文件时,代码工作正常。
您需要将访问 jar 中的资源的方式更改为流。
this.getClass().getResourceAsStream("/file.txt");
正确的做法是
this.getClass().getResourceAsStream("file.txt");
真是奇怪
this.getClass().getResource("file.txt")
在 IDE 中有效,但当您 运行 从罐子中取出时无效。
this.getClass().getResourceAsStream("file.txt")
在 IDE 和 jar 中都有效。
当我 运行 访问 src
目录中其他文件的 jar 文件时,我得到以下 RuntimeException
:
Exception in thread "main" java.nio.file.NoSuchFileException: src\FileToBeAccessed.txt.lck at sun.nio.fs.WindowsException.translateToIOException(Unknown Source) at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source) at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source) at sun.nio.fs.WindowsFileSystemProvider.newFileChannel(Unknown Source) at java.nio.channels.FileChannel.open(Unknown Source) at java.nio.channels.FileChannel.open(Unknown Source) at java.util.logging.FileHandler.openFiles(Unknown Source) at java.util.logging.FileHandler.(Unknown Source) at Program.main(Program.java:30)
当我直接 运行 它而不构建 jar 文件时,代码工作正常。
您需要将访问 jar 中的资源的方式更改为流。
this.getClass().getResourceAsStream("/file.txt");
正确的做法是
this.getClass().getResourceAsStream("file.txt");
真是奇怪
this.getClass().getResource("file.txt")
在 IDE 中有效,但当您 运行 从罐子中取出时无效。
this.getClass().getResourceAsStream("file.txt")
在 IDE 和 jar 中都有效。