4

我遇到了一个让我发疯的问题,我在 Windows 机器上使用 netbeans 创建了一个 java 应用程序,它包含一个带有 main 方法的普通 java 类,并按如下方式导入java.nio 。

package testubonto;
import java.nio.*;
import java.nio.BufferOverflowException;
public class Main {

    public static void main(String[] args) {
        try{
            java.nio.file.Path path = java.nio.file.Paths.get(args[0]);
            System.out.println(path.toString());
        }catch(Exception ex){
            System.out.println("Error: " + ex.getMessage());
            System.out.println(ex.getStackTrace());
        }
    } 
}

我测试了我的应用程序,它在我的 Windows 机器上运行良好。我构建了它并生成了它的 jar 文件,当我尝试在我的 Lubunto 机器上运行这个应用程序时出现问题,我下载了 jre-7u5.tar.gz,并解压缩了文件夹。将jar文件放在根目录下。当我尝试通过此命令使用终端运行应用程序时。

/home/user/jre1.7.0_05/bin/java -jar "TestUbonto.jar" /home/user

我得到了以下异常,

线程“主”java.lang.NoSuchMethodError 中的异常:java.nio.file.Paths.get

我该怎么办??:)

提前致谢,

4

1 回答 1

3

当用于构建的 jar 文件与用于执行的 jar 文件不同时,会发生 NoSuchMethodException。

用于构建的 jar 提供您的代码所需的方法。因此不会有任何编译错误,并且二进制文件已正确准备。

但是,当您通过在类路径中提供错误版本的相同 jar 来运行相同的代码时,它会给出上述异常。

验证您正在使用的罐子。

于 2012-06-27T10:52:56.240 回答