相关参数铺垫:
项目目的:在dos操作系统下引入自定义包中的类
具体实现:在h3类中引入Triangle类,从而创建三角形,并计算三角形的面积。
Triangle.java源文件存放路径: d:\h1\Triangle.java
h3.java源文件存放路径: d:\h1\h3.java
Triangle.java源代码:
package sohu.com;
public class Triangle{
double sideA,sideB,sideC;
public double getArea(){
double p=(sideA+sideB+sideC)/2.0;
double area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));
return area;
}
public void setSides(double a,double b,double c)
{
sideA=a;
sideB=b;
sideC=c;
}
}
h3.java源代码:
package hello.nihao;
import sohu.com.Triangle;
public class h3{
public static void main(String []args){
Triangle h4=new Triangle();
h4.setSides(3,4,5);
System.out.println(h4.getArea());
}
}
初始准备工作如下:
下面进入正题:
1)首先,编译Triangle.java,并将对应的字节码存放到souhu.com包中
对Triangle.java编译后结果(注意Triangle.class的存放路径——见图片第一行: 此电脑>软件(D:)>h1>sohu>com):
2)编写h3.java,并将对应的字节码存放到hello.nihao包中
这时候,问题来了
这是什么鬼?我已经把含有Triangle.class字节码的包和h3.java源文件放在同一个文件夹里了!
下面揭晓谜底。
导致这样的原因,是你在h3,java中import Triangle类时,系统不知道去哪里找这个Triangle类。
那该怎么解决呢?
答案是设置classpath变量——这个cp(classpath的简称)可以告诉javac去哪里找一个源程序中要引入的包
解决方法如下:
1、在系统变量中设置classpath路径(设置到Triangle字节码所在最上层包所在的目录(注意笔者各个文件,包的存放路径),这样的话,系统就会在整个根目录里的所有文件中寻找所需要的字节码)
2、输入对h3.java的编译指令(注意:classpath设置好后,需要重新打开dos系统窗口后才能生效)
3、结果成功啦(生成了h3.java源文件的字节码文件):
注:
本博客代码来自:
《Java 2 实用教程(第五版)》 耿祥义 张跃平 编著 清华大学出版社 书P90----P91页 例子17,例子18代码
笔者在学习时,运用dos操作系统操作代码时遇到了这个难题,经过笔者努力攻坚,解决了这个问题,于是将解决方案写成了博客,希望帮助更多在学习Java时遇到困难的追梦人。
笔者才学疏浅。博客内容如有错误,大家多多包含之余,笔者也恳请大家指出。