0

クラスの一部を配置するカスタム パッケージを作成しようとしていますが、それをプログラムの 1 つにインポートしようとすると、見つからないと表示されます。

これは私がコンパイルしようとしているファイルですが、パッケージが見つからないと言っています

import project_euler.Fibonacci;

public class test {
    public static void main(String[] args) {
        Fibonacci fib = new Fibonacci();
        System.out.println(fib.getTerm(10));
    }
}

これがフィボナッチクラス

package project_euler;
public class Fibonacci {
    public int getTerm(int n) {
        if (n < 0 || n > 46) {
            throw new IllegalArgumentException();
        } else {
            return (n > 1) ? getTerm(n-1) + getTerm(n-2) : n;
        }
    }
}

これは、コンパイルしようとしたときに発生するエラーです

test.java:1: error: package project_euler does not exist
import project_euler.Fibonacci;
                ^
test.java:6: error: cannot access Fibonacci
            Fibonacci fib = new Fibonacci();
            ^
bad source file: C:\Users\dhout_000\Documents\Project Euler\project_euler\Fibonacci.java
file does not contain class Fibonacci
Please remove or make sure it appears in the correct subdirectory of the sourcepath.
2 errors

そして、私のディレクトリ設定は

> My Documents
    > Project Euler
        - test.java
        > project_euler
            - Fibonacci.class
            - Fibonacci.java

問題が何であるかを理解できないようです

4

1 に答える 1

1

CLASSPATH環境変数が設定されていないことを確認してください。

パッケージ階層のベース ディレクトリからコードをコンパイルして実行します。

C:\My Documents\Project Euler> javac project_euler\Fibonacci\*.java

C:\My Documents\Project Euler> java project_euler.Fibonacci.test

およびコマンドの-cpオプションを使用して、クラスパスを明示的に指定することもできます。パッケージ階層のベース ディレクトリ ( ) が含まれていることを確認します。あなたがいるときに(現在のディレクトリ)を指定することでこれを行うことができます:javacjavaC:\My Documents\Project Euler.C:\My Documents\Project Euler

C:\My Documents\Project Euler> javac -cp . project_euler\Fibonacci\*.java

C:\My Documents\Project Euler> java -cp . project_euler.Fibonacci.test

注: 一般的な Java 命名規則に従って、名前 (パッケージ、クラス、メソッド名) にアンダースコアを使用しないでください。パッケージ名は小文字にする必要があり、クラス名は大文字で始める必要があります。パッケージの名前projecteuler.fibonacciを に変更し (もちろん、フォルダーの名前も変更する必要があります)、クラスの名前を に変更しtestますTest

于 2012-11-30T09:29:16.863 に答える