2017-02-17 3 views
-2

*(この質問の重複は本当に助けになりません) 私はフットプリントを表示して移動させるこの簡単なプログラムをコンパイルしようとしています。(Java)エラー

cannot find symbol 
    private CoordinateSystem coordinates; 
     ^
     symbol: class CoordinateSystem 
     location: class Foot 
    Foot.java:15: error: cannot find symbol 
     coordinates = new CoordinateSystem(x, y, pic); 
        ^
     symbol: class CoordinateSystem 
    location: class Foot 
2 errors 

私はそれが簡単な修正であることを確信している、しかし:私はエラーを取得するプログラムをコンパイルしようとすると、

しかし
// Represents a foot, used for displaying walking creatures. 

import java.awt.Image; 
import java.awt.Graphics; 

public class Foot 
{ 
    private Image picture; 
    private CoordinateSystem coordinates; 

    // Constructor 
    public Foot(int x, int y, Image pic) 
    { 
    picture = pic; 
    coordinates = new CoordinateSystem(x, y, pic); 
    } 

    // Moves this foot forward by distance pixels 
    // (or backward if distance < 0). 
    public void moveForward(int distance) 
    { 
    coordinates.shift(distance, 0); 
    } 

    // Moves this foot sideways by distance pixels 
    // (to the right if distance > 0 or to the left 
    // if distance < 0). 
    public void moveSideways(int distance) 
    { 
    coordinates.shift(0, distance); 
    } 

    // Turns this foot (clockwise for degrees > 0). 
    public void turn(int degrees) 
    { 
    coordinates.rotate(Math.PI * degrees/180.0); 
    } 

    // Draws this foot in the appropriate coordinate system. 
    public void draw(Graphics g) 
    { 
    coordinates.drawImage(g, picture); 
    } 
} 

:これは私が今のように働いているものです私はJavaに新しいと私はなぜこのエラーメッセージを取得しているの説明は非常に感謝される。

+0

重複している質問は、なぜこのエラーが発生しているのか理解できていません。誰かが私により具体的な説明を提供してくれるだろうか? –

答えて

0

コンパイルエラー出力に基づいて、問題はクラスFootがクラスCoordinateSystemを見つけることができません。 CoordinateSystemクラスはFootと同じパッケージに含まれていますか?そうでない場合は、インポートステートメントを追加する必要があります:import your.package.name.CoordinateSystemCoordinateSystemに適切なアクセス修飾子があるかどうか(つまり公開されているかどうか)を確認することもできます。

CoordinateSystemは同じライブラリ/ jarにありますか?クラスパスが正しく構成されていることを確認する必要があります。

問題はでも可能ですCoordinateSystemのコンストラクタについてです。呼び出されたコンストラクタは存在しますか? Footにアクセスするための適切な可視性はありますか?

+0

アドバイスをありがとう私は誤って別のディレクトリに足とCoordinateSystemを置く!しかし、今、メインメソッドがクラスフットに見つかりませんというエラーメッセージが表示されます。これについての提案はありますか? –

+0

設定のどこかで、Mainメソッドがクラス 'Foot'にあると宣言しました。 Mainメソッドは 'public static void main(String [] args)'です。投稿したコードに基づいて、私は 'Foot'にMainメソッドが表示されません。このコンフィグレーションは、デプロイされるとjarマニフェストファイルに格納されます。コマンドラインからこのアプリケーションを起動していて、それがjarファイルにパッケージ化されていない場合、javaを間違ったエントリポイント(Mainメソッドを持つクラス)に向けることになります。ただし、IDEを使用している場合は、プロジェクトが正しく実行されない可能性があります。 – Slaw

+0

これで、このファイルをjarファイルにパッケージングするにはどうすればいいですか? –