正在看《Core Java》。第4章有一个关于Package的例子:
文件目录结构是:
.(current directory)
|- PackageTest.java
|- com/
......|- horstmann/
.............|-corejava/
...................|-Employee.java
///////////////////////////////////////////////////////////////
//PackageTest.java:
import com.horstmann.corejava.*;public class PackageTest {
public static void main(String[] args)
{
Employee harry = new Employee("Harry Hacker", 50000,
1989, 10, 1);
System.out.println("name = ");
}}//////////////////////////////////////////////////////////////
//Employee.java:
package com.horstmann.corejava;
import java.util.*;
public class Employee{
public Employee(String n, double s,
int year, int month, int day)
{
name = n;
salary = s;
GregorianCalendar calendar
= new GregorianCalendar(year, month - 1, day);
hireDay = calendar.getTime();
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public Date getHireDay()
{
return hireDay;
}
public void raiseSalary(double byPercent)
{
double raise = salary * byPercent / 100;
salary += raise;
}
private String name;
private double salary;
private Date hireDay;
}在包含PackageTest.java文件的目录中运行:javac PackageTest.java
出错:
C:\PackageTest>javac PackageTest.java
PackageTest.java:1: 软件包 com.horstmann.corejava 不存在
import com.horstmann.corejava.*;
^
PackageTest.java:6: 找不到符号
符号: 类 Employee
位置: 类 PackageTest
Employee harry = new Employee("Harry Hacker", 50000,
^
PackageTest.java:6: 找不到符号
符号: 类 Employee
位置: 类 PackageTest
Employee harry = new Employee("Harry Hacker", 50000,
^
3 错误请问哪里错了?
文件目录结构是:
.(current directory)
|- PackageTest.java
|- com/
......|- horstmann/
.............|-corejava/
...................|-Employee.java
///////////////////////////////////////////////////////////////
//PackageTest.java:
import com.horstmann.corejava.*;public class PackageTest {
public static void main(String[] args)
{
Employee harry = new Employee("Harry Hacker", 50000,
1989, 10, 1);
System.out.println("name = ");
}}//////////////////////////////////////////////////////////////
//Employee.java:
package com.horstmann.corejava;
import java.util.*;
public class Employee{
public Employee(String n, double s,
int year, int month, int day)
{
name = n;
salary = s;
GregorianCalendar calendar
= new GregorianCalendar(year, month - 1, day);
hireDay = calendar.getTime();
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public Date getHireDay()
{
return hireDay;
}
public void raiseSalary(double byPercent)
{
double raise = salary * byPercent / 100;
salary += raise;
}
private String name;
private double salary;
private Date hireDay;
}在包含PackageTest.java文件的目录中运行:javac PackageTest.java
出错:
C:\PackageTest>javac PackageTest.java
PackageTest.java:1: 软件包 com.horstmann.corejava 不存在
import com.horstmann.corejava.*;
^
PackageTest.java:6: 找不到符号
符号: 类 Employee
位置: 类 PackageTest
Employee harry = new Employee("Harry Hacker", 50000,
^
PackageTest.java:6: 找不到符号
符号: 类 Employee
位置: 类 PackageTest
Employee harry = new Employee("Harry Hacker", 50000,
^
3 错误请问哪里错了?
javac -d . Employee.java //在当前目录下生成package: com.horstmann.corejava
javac . PackageTest.java //在生前目录下编译
java PackageTest //正常执行就可以了