在Java中编译错误

时间:2012-03-14 18:48:47

标签: java

我需要在前面加上我不允许在课堂上使用IDE,我必须使用TextPad进行编译和运行。任何帮助将不胜感激。

有两个与此分配相关联的文件,一个名为Lab5,数据文件名为StateCapitals。当我编译程序时,我得到以下错误。我“想”它无法找到同一文件夹中的文件,但它们是。

赋值的目的是生成一个对话框,询问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."));
  }
}

编译错误:

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

任何帮助将不胜感激!谢谢!

7 个答案:

答案 0 :(得分:1)

根据您发布的代码,类StateCapitals不存在。你忘了导入包吗?

答案 1 :(得分:1)

首先编译你的StateCapitals类,然后尝试编译Lab5或使用StateCapitals类的类,或者在需要导入的不同包中的StateCapital中编译,

要编译当前目录中的所有java文件,可以使用

javac *.java

答案 2 :(得分:1)

根据您的描述,您必须从StateCapitals中读取数据。这意味着FileReader(可能包含在BufferedReader中)将数据转换为代码中的可用格式。除非StateCapitals实际上是一个java文件,否则你只需要确保它们都被编译并放在同一个包中。

答案 3 :(得分:0)

如果你没有import StateCapitals,那么你的两个类都需要在同一个包中。这是通过在文件package packagename;的第一行添加来完成的。

答案 4 :(得分:0)

StateCapitals是您定义的课程吗?如果是这样,您必须像导入其他库一样导入它,例如import java.util.Random;

答案 5 :(得分:0)

看起来像是一个类路径问题你传递给javac的是什么?试试javac -classpath . Lab5.java。也就是说,假设Lab5StateCapitals都在同一个包中。如果没有,则需要在StateCapitals

中导入Lab5

答案 6 :(得分:0)

我自己使用TextPad,如果没有导入“StateCapital”类,或者源文件夹中没有StateCapital文件,或者在您的情况下最有可能我认为您没有编译StateCapitals,那么只会出现错误。 java,它至少需要包含以下代码:

public class StateCapitals
{

}