对于没有包层级的java程序,用命令行进行编译、运行、打包很简单。对于多层级包的java程序会有所不同。以如下程序为例
package HeadFirstJava.chapter01.guessGame;
public class GameLanucher {
public static void main(String[] args) {
GuessGame game = new GuessGame();
game.startGame();
}
}
可以看到,程序引入的包层级较深,此时用命令行进行运行和打包有一些不同
- 编译
不关注在哪个包下,只要有java文件,用java c编译即可 - 运行
需要到顶层包路径下,即HeadFirstJava所在目录运行以下命令:
java HeadFirstJava.chapter01.guessGame.GameLanucher
- 打包
同样地,打包也需要到引入包的顶层目录下创建MANIFEST.MF文件。文件内容如下:
Manifest-Version: 1.0
Main-Class: HeadFirstJava.chapter01.guessGame.GameLanucher
然后执行以下命令:
jar cvfm myapp.jar MANIFEST.MF HeadFirstJava
注意只用管顶层包就行,而且只能写顶层包的路径,把顶层包下的所有类打包。不然就会发生找不到主类的错误
最后运行jar文件