Java中的编译错误

Java中的编译错误,java,Java,我需要先说明我不允许在课堂上使用IDE,我必须使用TextPad来编译和运行。任何帮助都将不胜感激 有两个文件与此分配关联,一个称为Lab5,另一个称为StateCapitals。当我编译程序时,我得到以下错误。我“认为”它找不到同一文件夹中的文件,但它们是 分配的目的是生成一个对话框,要求从StateCapitals文件中随机选择一个州的资本。如果答案与该文件中包含的数组中的数据匹配,则对话框将关闭,并打开一个新对话框,告知用户答案正确或错误(以适用者为准)。用户尝试10次后,程序将显示一个新

我需要先说明我不允许在课堂上使用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

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

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

如果不导入
,则两个类需要位于同一个包中。这是通过在两个文件的第一行添加
packagename

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

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

中导入
StateCapitals
,只需先编译您的StateCapitals类,然后尝试编译Lab5或使用StateCapitals类的类,或者在不同包中的StateCapitals中导入该类

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

javac *.java

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

我自己使用TextPad,只有在没有导入“StateCapital”类的情况下才会出现该错误,或者源文件夹中没有StateCapital文件,或者很可能您还没有编译StateCapitals.java,它至少需要包含以下代码:

public class StateCapitals
{

}

你要编译什么
javac…
我不允许在课堂上使用IDE,
但是你可以要求其他人使用他们的IDE来帮助你,或者我也必须使用TextPad吗?你可能试图分别编译每个.java文件。但是,javac可执行文件不假定任何东西,只假定jre库在类路径中。您应该像上面一样同时编译这两个文件,或者使用“javac-cp.File.java”一次编译一个文件。