Java中的包错误

时间:2014-06-14 03:35:57

标签: java package packages

我试图在java中获取包的内容,目前我可以获取要编译的类,但是我无法获得要编译的主类。我有一个安装在闪存驱动器上的nppexec插件的JDK 8.0和notepad ++,所以我可以在任何Windows 7计算机上编程,编译和运行。要编译代码,我使用以下脚本:

//save current file
NPP_SAVE 
cd "$(CURRENT_DIRECTORY)"
"\Java\jdk1.8.0_05\bin\javac"  $(FILE_NAME)

要运行已编译的类,我使用的是以下脚本:

//save current file
//NPP_SAVE
cd "$(CURRENT_DIRECTORY)" 
"\Java\jdk1.8.0_05\bin\java" -classpath "$(CURRENT_DIRECTORY)" "$(NAME_PART)"

这些文件位于“\ Workspace \ personstest”中,目前有两个文件Person.java和PersonsTest.java都位于同一个文件中。 person.java的简化版本:

package personstest;
public class Person {
//fields and methods 
}

PersonsTest.java的版本:

package personstest;
import java.util.Scanner;

public class PersonsTest {
    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);
        String name, email, phoneNumber;
        System.out.print("Enter Name: ");
        name = keyboard.nextLine();
        System.out.print("Enter "+ name + "'s Email: ");
        email = keyboard.nextLine();
        System.out.print("Enter "+ name + "'s Phone Number: ");
        phoneNumber = keyboard.nextLine();
        Person leo = new Person(name, email, phoneNumber);
        System.out.println(leo);        
    } 
}

就像我说Person.java类编译好但不是PersonsTest.java。语法是正确的,因为如果我注释掉包含包测试的行;他们都正确编译,我能够运行该程序。我相信问题是我以前执行的命令行需要修改但我不熟悉那种语法。编译主类时会出现以下错误:

PersonsTest.java:15: error: cannot find symbol
        Person leo = new Person(name, email, phoneNumber);
    ^
  symbol:   class Person
  location: class PersonsTest
PersonsTest.java:15: error: cannot find symbol
        Person leo = new Person(name, email, phoneNumber);
                     ^
  symbol:   class Person
  location: class PersonsTest
2 errors

1 个答案:

答案 0 :(得分:0)

我真诚地建议您开始使用像Eclipse这样的IDE,这样就可以在编辑器中捕获这些类型的错误。

希望其中一些可以提供帮助:

编译Java程序时,编译器会创建一个包含所有正在使用的标识符的列表。如果它找不到标识符所指的内容(例如,变量没有声明语句),则无法完成编译。这是找不到符号错误消息的说法,它没有足够的信息来拼凑Java代码想要执行的内容。

可能的原因:

1)尝试使用变量而不声明它。

2)拼写错误的类或方法名称(请记住,Java区分大小写)。

3)使用的参数与方法的签名不匹配。

4)使用导入声明未正确引用打包的类。