打包就是把源文件结构化存储,可以避免重名也有利于有条理的管理。
如果要用控制台命令编译打包后的代码就必须保证文件存储的路径和源代码中的package路径一致,特别是从eclispe下转过来的,一定要保证原来的文件路径结构。如
在eclipse下,源文件存在 src文件夹下,有两个包,一个是huffman(包括动静态哈夫曼要用到的所有类),一个是test(测试的主程序)。从eclipse的workspace移到其他地方后要保证,xxx/src/huffman和xxx/src/test这两个路径(xxx是转移到的目标目录),以及里面所有.java文件里的package和import是正确的。
这样在 src路径下运行
javac -d ../bin test/*.java
test目录下的所有.java程序都会被编译到xxx/bin/test文件夹下为对应的.class文件,而且会按原来的package路径进行保存。在test这个包中的所有.java文件中import过的其他类也会被相应的编译到对应的目录下,如huffman目录下的.java文件因为都被import过所以,xxx/bin/huffman下会有对应的所有的.class类
运行时要把用点操作符,如(假设现在还在xxx目录下)
java test.Test