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

NoSuchMethodExceptionは、ビルドに使用されるjarファイルが実行に使用されるjarファイルと異なる場合に発生します。

ビルドに使用されるjarは、コードに必要なメソッドを提供します。したがって、コンパイルエラーは発生せず、バイナリは正しく準備されます。

ただし、クラスパスで間違ったバージョンに同じjarを指定して同じコードを実行すると、上記の例外が発生します。

使用しているjarファイルを確認します。

于 2012-06-27T10:52:56.240 に答える