1.首先在电脑桌面上创建一个test文件夹,然后使用记事本写两个单纯的Java类里边,分别是HelloWorld.java和BeInvoking.java,目标是HelloWorld调用BeInvoking.java里边的方法。
首先在test的上一级目录也就是桌面上尝试进行编译。
首先把cmd调到test的上一层目录上,也就是桌面路径,尝试进行编译。
找不到文件,因为桌面上没有这两个文件,可以理解。
然后i进入test目录,再尝试编译执行。
执行成功,因为HelloWorld.java调用了BeInvoking.java里边的方法,所以不用编译BeInvoking.java,编译器会当前文件夹下寻找BeInvoking.java自动编译。
编译完成后,test目录下多了编译后的两个字节码文件。
2.要是编译后的字节码文件放到其他地方会怎么样呢?
在test下创建一个target文件夹,打算把.class文件放到这个文件夹下。先把前面生成的.class文件删了。
编译语法如下,-d是指定编译后的存放目录,这里我指定的目录为./tatget,.是当前位置的意思,./targetd就代表当前位置下的target文件夹。
编译成功,并且target文件夹下多了两个字节码文件。
在test目录下执行看看。
执行失败,找不到字节码文件。可以理解。那么转换到target文件夹下应该能成功吧。试试看。
还真可以。
那我不在target文件夹然后使用绝对路径呢?(太乱了清个屏)
好吧,不知道怎么描述一个文件夹下的文件。使用 “ 文件夹路径/文件名” 或者
“文件夹路径.文件名” 好像都不行。
3.接下来引入包机制,把BeInvoking.java放入包cn.com中。也就是在第一行加入package cn.com; 先把整个target目录删了。
在test位置尝试进行编译。
加了个package cn.com就不行了?根据报错也就是说HelloWorld可以编译,但是BeInvoking.java找不到了。
那可能是它俩在不在同一个包内包导致的,在HelloWorld.java里边导入BeInvoking看看行不行。也就是在HelloWorld.java第一行加入import cn.com.BeInvoking;
试着编译看看。