仅供自己复习之用,可能有错误不要被误导了。

一。自定义包,并导入包


此java文件我放入如下路径下


通过 dos命令 进入位于Demo文件的目录

现在编译程序生成class文件,如下


-d 命令是将编译生成的class文件存放到指定位置

如果程序有写  package XXX;就会生成的一个XXX文件夹 中存有类文件;

如果aClass文件夹存在则将类文件放入其中,不存在则新建一个aClass文件夹;

这里package  aClass;就会在E:\javacc生成一个aClass文件并将类文件放入其中;



再编写一个程序,如下


存放在E:\javacc\java文件夹下 和Demo.java存放的位置一样


然后编译packageDemo.java


编译错误 要导入包的包不存在;

java编译器 默认去当前路径下寻找此包,也就是E:\javacc\java下 而此路径下并没有aClass文件夹 所以出错


这是就需要设置类路径classpath;

类路径的作用是指示java编译器和java虚拟机去指定路径下寻找要导入的包和要编译(javac)的文件要运行(java)的文件。

这里我要将.class文件放入E:\javacc下,路径设置如下


此路径为临时路径,每开启一次cmd就需要设置一次;

路径中的‘  .  ’;意思是表示当前路径就是 E:\javacc\java,设置当前路径的作用过会提到



这样就编译成功了,类文件位于当前路径下。


现在E:\javacc\java 如下




现在运行packageDemo.class



运行成功


但如果我们刚刚把classpath设置为如下


然后运行


这是因为 java虚拟机要去寻找packageDemo并运行它

然而他会根据路径去E:\javacc去寻找 没找到就会出错

如果没有设置classpath,java虚拟机默认去当前路径查找,而设置路径后他只会去类路径下查找

所以要加 ' .  '; 但是java编译器不管设没设置classpath都会去当前路径查找要编译的.java文件



此次导包我的机器就出现了如上这些问题,

还有一个小问题

如果也将packageDemo.java 写上package bClass,改动后的代码如下


classpath为如下


然后编译,如下



这时 E:\javacc如下



现在通过dos命令进入packageDemo.class所在路径 E:\javacc\bClass

并运行


没有找到类错误

运行带有package  XXX的程序格式为:    java  包名.类型  ,如下




要记住

java编译器总会去当前目录下寻找,而java虚拟机是根据classpath去寻找。没有设置classpath默认去当前路径和归档文件去寻找。归档文件应该是java自带的类库


当运行时, 如果程序有package  XXX,格式为  包名.类名 , 而且 包名会自动成为classpath的一部分

例如 Classpath路径 E:\javacc\java   类名是Demo程序中package设置为java

输入 java  java.Demo

java虚拟机就回去  E:\javacc\java\java 找Demo类 这样就编译出错,找不到主类了,有点蛋疼不知道为啥。

将路径设置为E:\javacc就可以了






二。自定义jar包并导入jar包

我因为这个出错很多次这次明白了写下来,下面这个演示是错误的

演示:将.class文件变成jar文件

代码如下



编译.java文件 然后将.class文件打包成jar文件


jar文件位于当前路径下,然后将它移至 E:\javacc\aClass文件下


再编译一个程序导入jar文件类


classpath如下


编译如下


说程序包不存在


后来我试了又试,变成import aClass.*;也不行。 原来只要导入的包中没有java class文件就会出现程序包不存在。

而jarDemo是个文件,不是一个包名自然导入import  aClass.jarDemo.*;也是出现程序包不存在。


所以不是将.class文件 打包成jar文件

而是将存有类文件的文件夹,打包成jar文件

 然后classpath设置为jar文件的路径


正确做法如下



编译Demo类


这是E:\javacc\aClass 中存有Demo.class


然后将aClass打包成一个jar文件


设置classpath如下



编译如下

出现这个错误将 java文件下的 Demo.java删除即可,我也不知道为啥出这个错误~


然后在编译运行就可以了



如果你看到了这篇文章,请不要全信,因为我是新手,我复习之用。看不懂别骂我

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值