2012-03-14 3 views
1

Мне нужно предисловие к этому, мне не разрешено использовать среду IDE в классе, я должен использовать TextPad для компиляции и запуска. Любая помощь будет принята с благодарностью.Ошибка компиляции в Java

С этим назначением связаны два файла: Lab5 и файл данных StateCapitals. Когда я компилирую программу, я получаю следующие ошибки. I «think» он не может найти файлы в одной папке, но они есть.

Целью присвоения является создание диалогового окна, в котором запрашивается капитал случайно выбранного состояния из файла StateCapitals. Если ответ соответствует данным в массиве, содержащемся в этом файле, диалоговое окно закрывается, а новый открывается, говоря пользователю, что ответ правильный или неправильный в зависимости от того, что применимо. После того, как у пользователя было 10 попыток, программа отображает новое диалоговое окно с количеством правильных и неправильных ответов. Код

Программа:

import java.util.*; 
import javax.swing.*; 
import java.util.Random; 

public class Lab5 
{ 
public static void main(String[] args) 
{ 

StateCapitals caps = new StateCapitals(); 
String [][] stateCapital = caps.GetCapital(); 
Random rand = new Random(); 
String [][] answer = new String [49][2]; 
int col = 0; 

// Declare the variables 
String stateName = ""; 
int count = 0; 
String capital = ""; 
int correct = 0; 
int wrong = 0; 


// Create a scanner 
Scanner input = new Scanner(System.in); 

    while (count < 10) 
    { 
    int randNum = rand.nextInt (48) + 1; 

    // Input box for the capital 
    String stateCapitalQuestionString = JOptionPane.showInputDialog(
    "What is the capital of " + stateCapital[randNum][0] + "?"); 
    capital = input.next(); 

    if (capital.matches(stateCapital[randNum][1])) 
    { 
    String stateCapitalRespString = JOptionPane.showInputDialog(
    "That is CORRECT!"); 
    correct++; 
    } 
    else 
    { 
    String stateCapitalRespString = JOptionPane.showInputDialog(
    "Incorrect Response!"); 
    wrong++; 
    } 
    count++; 
} 

    String stateCapitalSummaryString = JOptionPane.showInputDialog(
    ("You answered " + correct + "correctly!\n) (There were " + wrong + "incorrect   answers.")); 
    } 
} 

Compile Error:

F:\Java\Lab 5\Lab5.java:14: error: cannot find symbol 
StateCapitals caps = new StateCapitals(); 
^ 
    symbol: class StateCapitals 
    location: class Lab5 
F:\Java\Lab 5\Lab5.java:14: error: cannot find symbol 
StateCapitals caps = new StateCapitals(); 
        ^
    symbol: class StateCapitals 
    location: class Lab5 

Любая помощь будет оценен по достоинству! Благодаря!

+3

Что вы хотите скомпилировать? 'javac ...' –

+2

' Мне не разрешено использовать среду IDE в классе, но вы можете попросить других людей помочь вам, используя их IDE, или мне тоже нужно использовать TextPad? –

ответ

1

на основании вашего описания, вы должны прочитать данные из StateCapitals. Это означает, что FileReader (возможно, завернутый в BufferedReader), чтобы получить данные в удобном формате в вашем коде. Если StateCapitals на самом деле является Java-файлом, вам просто нужно убедиться, что оба они скомпилированы и находятся в одном пакете.

1

На основании кода, который вы опубликовали, класс StateCapitals не существует. Вы забыли импортировать пакет?

0

Если у вас нет importStateCapitals, оба класса должны быть в одном пакете. Это делается путем добавления в первой строке файла package packagename;.

0

StateCapitals класс, который вы определили? Если это так, вам придется импортировать его так же, как вы импортировали другую библиотеку, такую ​​как import java.util.Random;.

0

Похоже на проблему с classpath Что вы переезжаете на javac? Попробуйте с javac -classpath . Lab5.java. То есть, предполагая, что оба Lab5 и StateCapitals находятся в одном пакете. Если нет, то вам нужно импортировать StateCapitals в Lab5

1

Просто скомпилировать класс StateCapitals первый, а затем попытаться скомпилировать Lab5 или классы, которые используют класс StateCapitals, либо в StateCapital в другом пакете вам необходимо импортировать, что

для компиляции всех файлов Java в текущей директории, которую вы можете использовать

javac *.java 
+0

Возможно, вы пытаетесь скомпилировать каждый .java-файл отдельно. Однако исполняемый файл javac не предполагает ничего, кроме библиотек jre в вашем пути к классам. Вы должны либо скомпилировать оба файла одновременно, либо выше, или использовать «javac -cp. File.java» для их компиляции по одному. – Matt

0

Я сам использую TextPad и получаю эту ошибку только в том случае, если не было импортированного класса StateCapital или файла StateCapital в исходной папке ИЛИ, как наиболее вероятно, в вашем случае я считаю, что вы не скомпилировали StateCapitals .java, он должен содержать как минимум следующий код:

public class StateCapitals 
{ 

} 
Смежные вопросы