我试图在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
答案 0 :(得分:0)
我真诚地建议您开始使用像Eclipse这样的IDE,这样就可以在编辑器中捕获这些类型的错误。
希望其中一些可以提供帮助:
编译Java程序时,编译器会创建一个包含所有正在使用的标识符的列表。如果它找不到标识符所指的内容(例如,变量没有声明语句),则无法完成编译。这是找不到符号错误消息的说法,它没有足够的信息来拼凑Java代码想要执行的内容。
可能的原因:
1)尝试使用变量而不声明它。
2)拼写错误的类或方法名称(请记住,Java区分大小写)。
3)使用的参数与方法的签名不匹配。
4)使用导入声明未正确引用打包的类。