13

私は、Owning と OwningAccessor の 2 つのクラスを持っています。ファイルは同じディレクトリにあります。

public class Owning {
    String _name = "";
    public void printBanner()
    {
    }
    public void printOwning(double amount)
    {
        printBanner();

        //print details
        System.out.println("name:" + _name);
        System.out.println("amount:" + amount);
    }
}


public class OwningAccessor {
    public void access()
    {
        Owning o = new Owning();
        o.printOwning(500);
    }
}

でコンパイルしようとするOwningAccessorjavac -cp . OwningAccessor.java、コンパイルエラーが発生しました。

symbol  : class Owning
location: class smcho.OwningAccessor
        Owning o = new Owning();
        ^
OwningAccessor.java:6: cannot find symbol
symbol  : class Owning
location: class smcho.OwningAccessor
        Owning o = new Owning();
                   ^

これの何が問題なのですか?コードは Eclipse IDE で正常にコンパイルされます。

4

4 に答える 4

18

わかりました、次のようにファイルにコードが配布されているとしましょう

myproject
├── out
└── src
    ├── OwningAccessor.java
    └── Owning.java

コマンド プロンプトに移動し、ディレクトリを に変更しmyprojectます。そこに来たら、次のコマンドを発行します。

javac -d out -sourcepath src src/OwningAccessor.java

私はちょうどそれをテストし、それはうまく動作します. コンパイルされたクラスは次のoutフォルダーに配置されます。

.
├── out
│   ├── OwningAccessor.class
│   └── Owning.class
└── src
    ├── OwningAccessor.java
    └── Owning.java

1 つのクラスをコンパイルすると、他のすべての依存クラスのコンパイルがトリガーされます。srcコンパイラは、フォルダー内でそれらを自動的に探します。

于 2012-11-15T23:58:26.990 に答える
14

次のように、Owning.java と OwningAccessor.java の両方をコンパイルしてください。

javac -cp . Owning.java OwningAccessor.java

Eclipse は必要なすべてのファイルをコンパイルします。

于 2012-11-15T23:23:49.287 に答える