例如在~目录下有文件A.java,首先编译A.java (javac A.java),生成A.class文件。此时~目录下有A.java和A.class两个文件。
打开终端,cd到~目录,运行 jar cvf B.jar A.class,则在~目录下生成B.jar文件。
此时B.jar还不能运行,因为没有指定程序入口。
运行java -jar B.jar会提示 B.jar中没有主清单属性。
双击打开B.jar, 进入META-INF -> MANIFEST.MF, 最后一行添加 Main-Class: A ,然后回车。保存,退出。
此时再运行java -jar B.jar就可成功。
如何在别的程序中import自己写的jar包?
如果A.java 中没有package,则B.jar的结构为META-INF和A.class,称无名包。
无名包不可以import,而要引用B.jar可以简单的修改CLASSPATH,使之包含B.jar所在的目录。
或者在编译和运行的时候添加路径参数,具体为
编译 : javac -cp B.jar xxxx.java
运行 : java -cp .:B.jar xxxx.java