在dos操作系统下使用javac命令后出现“包不存在”情况的解决方案

相关参数铺垫:
项目目的:在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时遇到困难的追梦人。

笔者才学疏浅。博客内容如有错误,大家多多包含之余,笔者也恳请大家指出。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值