jar 手动 打包文件 so, class ,jar

简介: jar 手动 打包文件 so, class ,jar

理解java 打包jar 过程

遇到的问题

调用了一个java的人脸识别

识别库 依赖了 so 动态链接库


以及 第三方 jar 库

为了将 整个 项目打包成为一个 可以直接运行的 jar 文件

记录一下流程

第一步 源代码 编译 class 文件


windows 平台 所以 加上了 -encoding utf8 选项

-d . 代表生成 class 的目录结构

-cp 代表 第三方的 class 依赖 也可以是 jar 文件

so 直接在程序中按照绝对路径加载 就可以了

FaceEngineTest.java 是源代码 入口文件

javac -encoding utf8 -d . -cp C:\gitproj\javaSwing\lib\arcsoft-sdk-face-3.0.0.0.jar FaceEngineTest.java


根据class 生成 jar 包

编写 打包任务 清单

manf 文件

更详细的指南可以参考

https://www.w3cschool.cn/java/java-io-jar-manifest.html

manf 文件内容

Main-Class: FaceEngineTest
Class-Path: arcsoft-sdk-face-3.0.0.0.jar

jar打包命令

-c, --create 创建档案

-v, --verbose 在标准输出中生成详细输出


-f, --file=FILE 档案文件名。省略时, 基于操作 使用 stdin 或 stdout、

-m, --manifest=FILE 包含指定清单文件中的 清单信息

jar cvfm demo.jar manf .\FaceEngineTest.class

使用命令

java -jar .\demo.jar
[com.arcsoft.face.Rect(116, 124 - 365, 373),1]
特征值大小:1032
[com.arcsoft.face.Rect(116, 124 - 365, 373),1]
特征值大小:1032
相似度:1.0
性别:0


help 说明

法: jar [OPTION...] [ [--release VERSION] [-C dir] files] ...
jar 创建类和资源的档案, 并且可以处理档案中的
单个类或资源或者从档案中还原单个类或资源。
 示例:
 # 创建包含两个类文件的名为 classes.jar 的档案:
 jar --create --file classes.jar Foo.class Bar.class
 # 使用现有的清单创建档案, 其中包含 foo/ 中的所有文件:
 jar --create --file classes.jar --manifest mymanifest -C foo/ .
 # 创建模块化 jar 档案, 其中模块描述符位于
 # classes/module-info.class:
 jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0
     -C foo/ classes resources
 # 将现有的非模块化 jar 更新为模块化 jar:
 jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0
     -C foo/ module-info.class
 # 创建包含多个发行版的 jar, 并将一些文件放在 META-INF/versions/9 目录中:
 jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes


相关文章
|
6月前
|
Java Android开发
|
1月前
|
Java Windows
如何在windows上运行jar包/JAR文件 如何在cmd上运行 jar包 保姆级教程 超详细
本文提供了一个详细的教程,解释了如何在Windows操作系统的命令提示符(cmd)中运行JAR文件。
537 1
|
5月前
|
Java 数据库 数据安全/隐私保护
Java操作Excel文件导入导出【内含有 jxl.jar 】
Java操作Excel文件导入导出【内含有 jxl.jar 】
81 0
|
3月前
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
|
3月前
|
Java Maven
构建Springboot项目、实现简单的输出功能、将项目打包成可以执行的JAR包(详细图解过程)
这篇文章详细介绍了构建SpringBoot项目的过程,包括新建工程、选择环境配置、添加依赖、项目结构说明,并演示了如何编写一个简单的Controller控制器实现输出功能,最后讲解了如何使用Maven将项目打包成可执行的JAR包,并提供了运行JAR包的命令和测试效果。
构建Springboot项目、实现简单的输出功能、将项目打包成可以执行的JAR包(详细图解过程)
|
3月前
|
前端开发 Java 编译器
classpath中存在多个jar存在同限定名的class classloader会如何加载
总之,合理组织类路径和使用现代化的构建工具,可有效避免类加载冲突,保证应用的稳定运行。
103 8
|
5月前
|
XML 运维 Java
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
52 1
|
5月前
|
Java Maven
Maven项目打包成jar项目后运行报错误: 找不到或无法加载主类 Main.Main 和 jar中没有主清单属性解决方案
Maven项目打包成jar项目后运行报错误: 找不到或无法加载主类 Main.Main 和 jar中没有主清单属性解决方案
713 0
|
5月前
|
缓存 Java Maven
IDEA如何把MAVEN项目打包成jar包并且用命令行启动
IDEA如何把MAVEN项目打包成jar包并且用命令行启动
70 0
|
6月前
|
Java 关系型数据库 Docker
docker打包部署spring boot应用(mysql+jar+Nginx)
docker打包部署spring boot应用(mysql+jar+Nginx)