大家早上好。
因此,我试图通过一个包结构来编译一个非常简单的Java程序,其中有两个Java文件。我的文件夹结构是:
Prac/Java/LL/people/src/coreservlets/
这两个文件是PersonTest.java(这是主要文件)和Person.java
PersonTest.java文件如下:
package coreservlets;
public class PersonTest {
public static void main (String[] args) {
Person p = new Person("Jane", "Smith");
}
}
和Person.java进行如下操作:
package coreservlets;
public class Person {
public String firstName, lastName;
public Person(String initialFirstName,
String initialLastName) {
this.firstName = initialFirstName;
this.lastName = initialLastName;
}
public String getFullName() {
return(firstName + " " + lastName);
}
}
当我尝试编译时,它告诉我找不到符号Person。我已经检查了多个论坛条目,以确保我正确地执行了包结构,但我不知道是什么问题。我究竟做错了什么?
最佳答案
问题是需要为每个命令(javac和java)设置类路径:
遵循以下步骤
instead of going to subpackage, compile Person.java from the top_level:
$javac -cp . Prac/Java/LL/people/src/coreservlets/Person.java
compile PersonTest.java in the same way:
$javac -cp . Prac/Java/LL/people/src/coreservlets/PersonTest.java
run the file using the class path also:
$java -cp . Prac/Java/LL/people/src/coreservlets/PersonTest
引用:http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html
关于java - Java包和/或文件结构编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46715943/