命令行生成可执行的jar包

您所在的位置:网站首页 本地如何运行jar包 命令行生成可执行的jar包

命令行生成可执行的jar包

2023-03-23 00:27| 来源: 网络整理| 查看: 265

jar包 jar包分类

jar包分为可执行jar包和不可执行jar包 jar包解压后都有一个META-INF/MANIFEST.MF文件 可执行jar包和不可执行jar包的区别是MANIFEST.MF文件里有主类入口配置:Main-Class: com.example.MyClass 注意MANIFEST.MF配置后的冒号后有空格 可执行jar包,直接双击就可以运行,或者同目录下cmd中执行命令:java -jar jar包名.jar

如何生成jar包

(1)javac编译java文件

javac Hello.java

(2)将编译后的Hello.class文件打成jar包

jar -cvf hello.jar Hello.class  c表示要创建一个新的jar包,v表示创建的过程中在控制台输出创建过程的一些信息,f表示给生成的jar包命名 (3)运行jar包

java -jar hello.jar 这时会报如下错误 hello.jar中没有主清单属性 添加Main-Class属性 用压缩软件打开hello.jar,会发现里面多了一个META-INF文件夹,里面有一个MENIFEST.MF的文件,用记事本打开

1 Manifest-Version: 1.0 2 Created-By: 1.8.0_121 (Oracle Corporation) 3

在第三行的位置写入 Main-Class: Hello (注意冒号后面有一个空格,整个文件最后有一行空行),保存 再次运行 java -jar hello.jar ,此时成功在控制台看到 hello ,成功

附:

1 如果有多个java文件,则在编译的时候同时编译,然后将多个class文件同时打包,后续过程相同 2.如果多个java文件不在同一个文件夹,此时需要注意,他们编译后的class还在各自的文件夹,可以 javac A.java bbb/B.java -d target 编译到一个相同的文件夹 3.如果想加入jar,则在编译的时候 javac -cp A.jar B.java 并且在最终生成的jar包中修改MENIFEST.MF,在MENIFEST.MF文件中配置一个新属性:Class-Path,路径指向你需要的所有jar包,引入多个jar包,中间用空格隔开

1 Manifest-Version: 1.0 2 Created-By: 1.8.0_121 (Oracle Corporation) 3 Main-Class: B 4 Class-Path: A.jar 5

4.有的时候我们是在一些集成开发环境中拷贝一些java文件,编译出来的class文件是带着包名的,所以要在jar包中创建相应目录,把class文件移入相应的目录,并且修改MENIFEST.MF

1 Manifest-Version: 1.0 2 Created-By: 1.8.0_121 (Oracle Corporation) 3 Main-Class: com.example.lib.Main 4 Class-Path: A.jar 5

7.想读取jar包内的资源文件,getClass().getResourceAsStream("a.txt")的方法读取输入流



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3