سؤال

لماذا أتلقى هذا الخطأ عند الطبقة SystemController هي في نفس الدليل؟

sgs$ javac Main.java 

Main.java:27: cannot find symbol
symbol  : class SystemController
location: class sgs.Main
        SystemController sc = new SystemController();
        ^
Main.java:27: cannot find symbol
symbol  : class SystemController
location: class sgs.Main
        SystemController sc = new SystemController();
                                  ^
2 errors

package sgs;

import javax.swing.JFrame;

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here

        boolean loginSuccess = false;
        //Login login = new Login();
        //login.setVisible(true);
        //login.loadAccounts("files/accounts.txt");

        SystemController sc = new SystemController();
    sc.setVisible(true);
        sc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

}
هل كانت مفيدة؟

المحلول

وتخميني هو أنك لم تجميع SystemController التي يتوقف Main. ذلك إما تجميع SystemController يدويا قبل لتجميع Main (ولكن من شأنها أن تكون مؤلمة على المدى الطويل إذا كان عدد من الطبقات ينمو) أو تجميع كل شيء معا، والسماح للمترجم بحساب أجل تجميع (أفضل IMO). شيء من هذا القبيل:

$ pwd
/path/to/sgs
$ cd ..
$ javac sgs/*.java
$ java -cp . sgs.Main

وتحرير: من الخطأ الذي نشر عن التعليق، أستطيع أن أرى أنك تستخدم GNU GCJ لا يعتمد بشكل كامل سوينغ . يرجى التبديل إلى الشمس JDK أو OpenJDK. يجب أن يكون على حد سواء كما تتوفر حزمة، فقط للتأكد من جعله الافتراضي جافا بعد تثبيت (انظر HTTPS: // help.ubuntu.com/community/Java للحصول على أوبونتو أو توزيعة دبيان مقرها، ومعرفة كيفية القيام بذلك لتوزيعة أخرى).

نصائح أخرى

هل جمعت SystemController؟

والمحاولة

javac *.java

وأيضا، تذكر لتحديد CLASSPATH الخاص بك حيث هي الطبقات سوينغ.

javac -cp classpath *.java
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top