使用package语句与import语句。
实验要求:按实验要求使用package语句,并用import语句使用Java平台提供的包中的类以及自定义包中的类。掌握一些重要的操作步骤。
代码:
模板1:将模板1给出的Java源文件命名为SquareEquation.java,将编译后得到的字节码文件复制到c:\1000\tom\jiafei目录中。
SquareEquation.java
package tom.jiafei;
public class SquareEquation
{
double a,b,c;
double root1,root2;
boolean boo;
public SquareEquation(double a,double b,double c)
{
this.a=a;
this.b=b;
this.c=c;
if(a!=0)
{
boo=true;
}
else
{
boo=false;
}
}
public void getRoots()
{
if(boo)
{
System.out.println("是一元2次方程");
double disk=b*b-4*a*c;
if(disk>=0)
{
root1=(-b+Math.sqrt(disk))/(2*a);
root2=(-b-Math.sqrt(disk))/(2*a);
System.out.printf("方程的根:%f,%f\n",root1,root2);
}
else
{
System.out.printf("方程没有实根\n");
}
}
else
{
System.out.println("不是一元2次方程");
}
}
public void setCoefficient(double a,double b,double c)
{
this.a=a;
this.b=b;
this.c=c;
if(a!=0)
{
boo=true;
}
else
{
boo=false;
}
}
}
模板2 :将模板2给出的Java源程序SunRise.java保存到d:\2000中。在编译模板2给出的Java源文件之前,要重新设置classpath。假设本地机SDK的安装目录是E:\jdk1.8。在命令行执行如下命令:set classpath=e:\jdk1.8\jre\lib\rt.jar;.;c:\1000;或用鼠标右键点击“我的电脑”,弹出快捷菜单,然后选择“属性”命令,弹出“系统属性”对话框,再单击该对话框中的“高级”选项卡,然后单击“环境变量”按钮。将classpath的值修改为:E:\jdk1.5\jre\lib\rt.jar;.;c:\1000然后重新打开一个命令行窗口,编译模板2给出的Java源程序。
SunRise.java
import tom.jiafei.*;
class SunRise
{
public static void main(String args[])
{
SquareEquation equation=new SquareEquation(4,5,1);
equation.getRoots();
equation.setCoefficient(-3,4,5);
equation.getRoots();
}
}
这个需求中遇到两个BUG!
一 : javac 不是内部或外部命令
- 注意三个设置
JAVA_HOME D:\java\jdk1.8.0_65 (这个是我的)
CLASSPATH .;%JAVA_HOME%\lib
PATH %JAVA_HOME%\bin;
之后 javac 就成功了
二:找不到或无法加载主类
我们前面已经将模板1中的SquareEquation.java
用javac
编译之后放在了C:\1000\tom\jiafei
下,现在在模板二中出现找不到或者无法加载主类的错误,实际上java运行主类如果没有默认包就是当前.class文件的目录,如果有包,需要从包上一级目录找主类。
下面我把目录切换到D盘下就正确了: