我正在运行Eclipse Kepler Service Release 2.当我在Eclipse中运行它时,我的程序运行正常,当我使用windows cmd运行.jar时,它也能正常工作。但是,将相同的.jar放到树莓派中,我收到以下错误:
Exception in thread "Thread-1" java.lang.NoSuchMethodError: java.nio.file.Files.readAllLines(Ljava/nio/file/Path;)Ljava/util/List;
有问题的代码是
import java.nio.file.Files;
import java.nio.file.Path;
import dataTypes.Detection;
public final class FileOperations {
// ...
public static Detection readDetection(Path p) {
try {
List<String> lines = Files.readAllLines(p);
// etc ...
我部分确信问题在于我错误地编写了jar,但由于我是一个完全新手,我不知道如何检查我做得对。有没有人有任何建议?
答案 0 :(得分:4)
您正在尝试使用Java 8中引入的java.nio.file.Files.readAllLines(Path)
。您无法在Java 7中使用它。
选项:
碰巧发生了readAllLines
的重载,它带有Path
和Charset
,可用于Java 7,和,这是一个更好的重载使用无论如何,这样你就明确了想要使用哪种编码。所以将代码更改为:
// Or whichever Charset you really want...
List<String> lines = Files.readAllLines(p, StandardCharsets.UTF_8);
答案 1 :(得分:1)
Rasberry Pi可能有Java ME(Micro Edition),它不包含Java SE(标准版)中的许多方法,您可能在运行Eclipse的计算机上使用这些方法。