2010-10-11 35 views
6

Kodlama deneyimim yalnızca birkaç yıl geçti, bu nedenle bu sorunun yanıtlanması yeterince kolay olmalı."Sembol bulamıyor" derleme hatası

İki arabirim yazdım: Sınıf ve Oyun. Arayüz CLASS'ın GAME arayüzünü genişletmesi gerekiyor. Ben ikinci bir arayüz derlemeye çalıştığımda

class.java:4: cannot find symbol 
symbol: class Game 
public interface Class extends Game 
          ^

Benim Oyun sınıfı derlenmiş aşağıdaki hatayı ve sınıf dosyasını almak, Şimdi

package Impl; 

public interface Game 
{ 
    //METHODS AND VARS 
} 


package Impl;  

public interface Class extends Game 
{ 
    //METHODS AND VARS 
} 

: Burada

iki arayüz kaynaklarıdır hem java dosyaları ile aynı dizinde. Bir çözüm bulamadım. Herhangi bir fikri olan var mı?

cevap

8

Sınıf adları büyük/küçük harf duyarlıdır. game adında bir arabirim oluşturmuş olabilirsiniz, ancak Class arabirim bildiriminde, derleyicinin bulamadığı Game olarak bakın. Ancak, Impl paketinizin içinden derleme şansınız vardır. Bunu yapmak için, sınıf yolunuza, derleyicinin paket yapısının tabanından sınıflar bulabileceği şekilde başvurmanız gerekir. Sen sınıf adından önce senin javac bir -classpath .. arg ekleyebilirsiniz:

javac -classpath .. Class.java 

Alternatif olarak, paket yapısının kökünden derleme, daha yaygın olanı yapabilirsiniz. Bunu yapmak için, Class dosyasının yolunu belirtmek gerekir: Her zaman açık olmak bir -classpath . ekleyebilir

javac Impl\Class.java 

.

+0

Teşekkür ederiz. Bu benim sorunumu tamamen çözdü. Kodlama problemi olduğunu varsaymıştım. – Jay

+7

Jay, StackOverflow'da (Hoş Geldiniz!) Yeni olduğunuzu görüyorum. Lütfen probleminizi çözdüyse, akf'ın çözümünü kabul edin. Kabul ettiğiniz daha cevaplar, daha istekli insanlar gelecekte sorularınızı yanıtlamak için vardır. – AndyG

6

Java sınıf yollarının nasıl çalıştığını ve kaynak kodunuzu nasıl düzenleyeceğinizi nasıl okumanız gerekiyor. Temel olarak, javac derleyici "Class.java" derlediğinde, geçerli dizinde "Game.class" bulmayı beklemez. Bu (muhtemelen) "Impl/Game.class" içinde arıyor.

IBM "Managing the Java classpath" sayfayı sınıfyolu ve nasıl java programları (örneğin java ve javac) sınıf dosyaları bulmak için kullanabilirsiniz nasıl ayarlanacağı bir derinlemesine bir tartışma sağlar. Oracle "Setting the Classpath" sayfa daha özlü fazla bilgi sağlar ... ama dikkatlice okumak gerekir. Bu arada

, kodunuzda bazı stil zulümler var:

  • Java paketi isimler küçük durumda olmalıdır. Bu varsayılan olarak içe java.lang.Class denilen sınıfta çarptığı çünkü bir sınıf Class çağrılması
  • , kötü bir fikirdir.
İlgili konular