One-JAR Quick Start

[b]Quick Start[/b]
There are various approaches to getting started with One-JAR. Ant users will find the "Application Generator Approach" most useful, Maven users the "Maven Approach", command-line tool users may prefer the "Command Line Approach".
[b]Application Generator Approach[/b]
This approach provides you with a complete Eclipse/Ant application directory, which you can use as a starting point for your own One-JAR application. The application generator is driven by a template built into the one-jar-appgen.jar file (see one-jar-appgen)

Download one-jar-appgen-0.97.jar
Generate application, build, and run it.

$ java -jar one-jar-appgen-0.97.jar

Enter project path (project name is last segment): c:/tmp/test-one-jar
Enter java package name: com.example.onejar

$ cd c:/tmp/test-one-jar
$ ant
$ cd build
$ java -jar test-one-jar.jar

test_one_jar main entry point, args=[]
test_one_jar main is running
test_one_jar OK.

Add source code to the src directory, library jars to the lib directory, and rebuild.
[b]Command-Line Approach[/b]
The use of Ant is not required: a One-JAR archive is simple to build using just the jar tool using the following steps.

Create a working directory to act as the "root" of the one-jar with main, lib sub-directories.
Copy your main application jar file into root/main and library dependencies into root/lib
Unjar the one-jar-boot-0.97.jar file into the root directory, and delete the "src" tree
Edit the boot-manifest.mf file and add a new line: One-Jar-Main-Class: your-main-class
cd root; jar -cvfm ../one-jar.jar boot-manifest.mf .

You should end up with a One-JAR archive which mirrors the "root" tree:

one-jar.jar
| META-INF/MANIFEST.MF
| .version
| com/simontuffs/onejar
| Boot.class, ...etc.
| doc/one-jar-license.txt
| main/main.jar
| lib/a.jar ...etc.

Thats it: no code to write, just a directory tree, some copy operations, and a file edit. The One-JAR classloader discovers the libraries and main code based on their position in the archive, and ignores any other Jar files should you need to embed archives which should not be on the classpath. Embedding the one-jar-license.txt ensures compliance with the BSD-style license.
[b]Maven Approach[/b]
There is a Maven2 plugin for One-JAR. It is easy to use for Maven projects. Please consult the documentation here: http://code.google.com/p/onejar-maven-plugin/
[b]Ant Taskdef Approach[/b]
Detailed use of the One-JAR Ant Taskdef is discussed here. Note that the one-jar-appgen approach uses the Ant taskdef.
[b]SDK Approach[/b]
Use of the (deprecated) SDK is discussed here
雅思听力词组总结 雅思听力词组总结(涵盖几乎所有雅思真题词组)已更新至1037条 阅读详情

相关推荐

Spark环境配置四层契约:JVM/Python/Hadoop/本地层协同指南

Apache Spark并非独立可执行程序,而是运行在JVM之上的分布式计算框架,其稳定运行依赖JVM版本、Scala/Python运行时、Hadoop兼容层与本地存储网络四层技术契约的严格对齐。理解Spark环境的本质,是掌握字节码兼容性、py4j进程通信机制、hadoop-client抽象接口及临时目录权限控制等核心原理的前提;它直接决定类加载失败、序列化异常、文件系统不可用等高频故障能否被精准归因。该技术价值在于将模糊的‘配环境’转化为可验证、可复现、可CI自动化的工程实践,广泛应用于本地开发调试、算

weixin_34197488的博客 438

OssImport系列之五——常见问题及排除

相关文章:OssImport系列之一——架构 1. UnsupportedClassVersionError异常 执行命令时异常: Exception in thread "main" java.lang.UnsupportedClassVersionError: com/aliyun/ossimport2/OSSImport2 : Unsupporte...

weixin_33686714的博客 7904

中国AI开源16强:国产大模型与推理框架实测清单

开源大模型和AI推理框架是构建自主可控AI应用的底层基石。其核心原理在于通过开放代码、权重与工具链,降低算法集成、模型部署与中文场景适配门槛;技术价值体现在开箱即用性、国产硬件兼容性及真实业务闭环能力;典型应用场景覆盖政务智能问答、金融研报生成、边缘端代码辅助等高需求领域。尤其在中文长文本理解、法律/医疗术语处理、昇腾/飞腾平台支持等方面,一批深度本地化的开源项目已形成实质性生产力。本文聚焦经三平台实测验证的中国AI开源代表项目,涵盖Qwen2、BGE-M3、vLLM-CN、LightLLM等关键组件。

515

使用one-jar-ant-task快速使现有工程支持jar in jar

问题 上篇文章:使用one-jar-appgen快速生成jar文件嵌套的eclipse工程中提到的方法适合于以下几个情况:   新建立工程。原有工程目录结构与工具提供的类似,既build.xml的改动较小。你是一个“拥抱变化”的哥们。 在其它情况下可以你就没有动力使用这个工具了。 one-jar-ant-task 本文说的方法是one-jar提供的另一个方法,直接使用ant的自定义

Bo6Bear的专栏 1460

2026年漏洞扫描工具选型指南:从Nuclei到Trivy的实战解析

漏洞扫描是网络安全防御体系中的基础环节,其核心原理是通过自动化工具模拟攻击行为,主动发现系统、应用或网络中的安全弱点。这项技术通过资产发现、指纹识别、漏洞验证等步骤,将潜在风险可视化,为安全团队提供可操作的修复依据。在技术价值层面,有效的漏洞扫描能显著降低被攻击面,是实现主动防御、满足合规要求的关键手段。随着DevSecOps和云原生技术的普及,扫描工具的应用场景已从传统的Web应用安全测试,扩展到API安全、容器镜像扫描、基础设施即代码(IaC)安全以及软件供应链安全等现代工程实践。本文聚焦于Nuclei

weixin_30800987的博客 447

onejar-maven-plugin:我的 onejar-maven-plugin 分支

这是从分叉出来的,用于修复包含的 AWS jar 的问题。 允许您使用 Maven2 构建一个包含所有依赖项的可执行 jar。 您也可以使用程序集插件执行此操作,但这只会将所有依赖项与您的类一起解压缩到一个目录中,然后将该目录重新打包到一个新的 jar 中。 这样做意味着如果文件在同一路径中具有相同的名称,它们将相互覆盖,这对于诸如 log4.properties 之类的资源甚至其他更重要的文件来说是很常见的。 使用 onejar-maven-plugin,你会得到一个干净的超级 jar,里面有依赖 jar。 按照使用! 对原作的改动 fork 打包了一个来自的打补丁的 one-jar 0.97 并默认使用该版本。 原来的0.97还是完整的,可以通过在maven pom.xml中指定onejarVersion配置选项使用。 示例 pom.xml 构建插件配置 ... <build>

One-Jar之旅

 1             问题的提出作为一个经常使用Java编程的程序员,当我在发布我的Java程序的时候,我习惯于这样组织所有的程序和资源:主程序放到JVM系统变量“user.dir”所指向的目录中(假设是MyAppDir目录),程序所用到的工具类(通常是打好包的jar文件)放到MyAppDir/lib/目录,其他资源(如图片等)放到MyAppDir/res/目录,然后写一个批处理文

薛笛的专栏 8050

【ESP32-IDF】I2S音频协议实战:从PDM麦克风到PCM扬声器的全链路解析

本文深入解析ESP32-S3的I2S音频协议,从PDM麦克风采集到PCM扬声器输出的全链路实现。详细介绍了硬件PDM转PCM、Standard模式配置及混合模式协同工作,提供实战代码与性能优化建议,助力开发者高效完成嵌入式音频项目开发。

pea55的博客 886

一个奇怪的问题:匿名内部类用Lambda替换以后出现了cannot be cast to class的问题

本文记录了学习Spring 实战这本书的第六章创建REST服务时所遇到的问题,特别是使用Spring HATEOAS时遇到了很多问题。在将匿名内部类替换为Lambda时又遇到了"message": "class org.springframework.data.rest.webmvc.PersistentEntityResource cannot be cast to class org.springframework.hateoas.PagedModel的问题,至今还未解决

ZhaoSimonone的博客 3672

Unity学习笔记之【IK反向动力学操作】

反向动力学,简称IK。相较于正向动力学,反向动力学旨在子级对父级产生的影响。使用IK,可以实现根据目标位置或方向来计算并调整角色的关节(骨骼)链,以使角色的末端(如手臂、腿部等)达到预期的位置或取向。通过使用 Unity 的 IK 功能,你可以实现各种复杂的角色动画效果,如角色抓取、足部对齐、手臂跟随等。 2. 将所视的目标物体拖拽绑定 4. 实现效果如下 :移动角色时注释立方体 实现效果如下

m0_47351846的博客 2954

微信小程序协同工作和发布

微信小程序协同工作和发布

qq_53114527的博客 1620

stop-slop邮件写作实战:让outreach邮件听起来不像AI

用 AI 写过 outreach 邮件的人,大概率都有同一个尴尬:写完后自己读一遍,就想去删。问题不在于内容错,而在于 AI 味太重——开头清嗓子、满嘴副词、动不动"not X, it's Y"。[stop-slop](https://link.gitcode.com/i/5c0e5ce9ca08bc4b74b2d90d8207d4de) 就是专门干这件事的开源技能包:教 AI 识别并清除文章里的

gitblog_01088的博客 1173

避坑指南:C#用S7NetPlus读写西门子PLC字符串(String/WString)的完整方案

本文详细解析了C#通过S7NetPlus读写西门子PLC字符串(String/WString)的完整方案,包括内存布局、编码差异和字节序处理等关键技术细节。提供了实战优化的代码示例和常见问题排查指南,帮助开发者避免乱码、截断等常见陷阱,提升工业自动化项目的开发效率。

weixin_32956805的博客 320

常用 doc bat 命令总结

常用doc命令总结

sun0322 1万+

解决Matlab激活后License checkout failed问题的详细步骤与避坑指南

本文详细解析了Matlab激活后出现License checkout failed错误的常见原因及解决方案,重点介绍了如何正确找到并运行激活程序,避免用户名填写错误等常见问题。文章还提供了多次激活与疑难排解的实用建议,帮助用户顺利完成Matlab激活过程。

weixin_33670786的博客 578

用Bus Hound和MIDIOX抓包分析USB MIDI数据流:从硬件接口到软件解析的完整实战

本文详细介绍了如何使用Bus Hound和MIDIOX工具抓包分析USB MIDI数据流,从硬件接口到软件解析的完整实战过程。通过解析MIDI协议、捕获Note On/Off事件、控制变更消息等实例,帮助开发者深入理解音乐数字接口的底层通信机制,并提供了常见问题的解决方案和调试技巧。

weixin_42692935的博客 404

K8s+Docker+KubeSphere+DevOps笔记

提示:这里可以添加本文要记录的大概内容:提示:以下是本篇文章正文内容,下面案例可供参考。

qq_44637753的博客 4093

YOLOv12涨点改进| Kimi团队 2026 |独家创新首发、注意力改进篇|爆火AttnRes残差自注意力模块,含多种创新改进,借助残差思想,缓解细节信息在传播过程中被稀释,促进YOLOv12涨点

🔥本文提出AttnRes残差自注意力模块改进YOLOv12模型,通过深度维度的注意力加权机制替代传统固定残差累加方式。该模块能自适应选择更有价值的历史层特征进行聚合,缓解浅层信息在深层传播中被稀释的问题,提升小目标和复杂场景的检测能力。文章详细介绍了模块结构、原理及优势,并提供了完整的代码实现和配置方法,包括三种改进方案:yolov12n_AttnRes.yaml、yolov12n_AttnRes-2.yaml和yolov12n_A2C2f_AttnRes2D.yaml。

Ai缝合怪、助力小伙伴高效发论文 182

代码 阅读器:SI (Source Insight)、vscode(Visual Studio Code)、code-server、Visual Studio、OpenGrok

代码 阅读器:IDE、SI (Source Insight)、OpenGrok

freeking101的博客 7545

制作3D地形图的方法-使用GlobalMapper和3ds Max软件

打开GlobalMapper软件,在菜单栏中选择“文件”>“打开数据文件”,然后选择相应的高程数据文件。在菜单栏中选择“渲染”>“渲染设置”,根据需要进行设置,如分辨率和输出格式。选择地形对象,点击菜单栏中的“渲染”>“材质编辑器”,然后根据需要调整材质属性,如颜色、纹理和光照等。在菜单栏中选择“工具”>“高程栅格和网格”>“创建地形网格”。在菜单栏中选择“文件”>“导出”>“导出栅格格式”。打开3ds Max软件,在菜单栏中选择“文件”>“导入”,然后选择之前导出的地形数据文件。步骤3:导出地形网格。

JqlScala的博客 1535

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

渗透测试 ( 0 ) --- XSS、CSRF、文件上传、文件包含、反序列化漏洞

渗透测试 --- http协议、XSS、CSRF、文件上传、文件包含、反序列化漏洞

freeking101的博客 5538

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

使用one-jar-appgen快速生成jar文件嵌套的eclipse工程

问题 这个问题在大家将程序打包的时候可能会遇到,有的时候需要将使用的外部jar也打在包中,从网上找了一下这有几个方法: 1.运行时指定external jar的路径到classpath 2.所有的包unzip,再重新打一个新包 3.使用one-jar 的可打复合包的工程创建工具 4.使用one-jar 的ant任务进行创建   对于第一种情况,相当于没有将external jar写在

Bo6Bear的专栏 1428

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Spring AI + GPT-5.5 + Ollama 配置教程:Base URL、超时与流式调用

由于不同 Spring AI、Spring Boot 小版本之间仍可能存在差异,创建项目时应检查 Spring Initializr、Spring AI BOM 和官方兼容矩阵,不要直接复制旧教程中的 Starter 名称和版本号。多人项目最好隔离不同客户端,并在脱敏前提下记录最终 URL、状态码、请求耗时、请求 ID 和模型 ID。Spring AI 接入模型 API,至少要同时确认 Starter、Base URL、请求路径、API Key、模型 ID、连接超时、读取超时和流式客户端这 8 项。

2601_95893075的博客 214

V8 机制、手写核心函数与 TypeScript 类型体操

或固定初始化(如数组先定长、对象先给全字段)保持类型与形状稳定;这些都比"换框架"更基础。只能处理纯数据(丢函数、Date、RegExp、循环引用报错)。生产级深拷贝要处理:原始值短路、循环引用、V8(Chrome / Node 的 JS 引擎)不是"解释一行跑一行"那么简单,它用。图:V8 执行流程——解释执行 + 热点优化,优化失败会 Deopt 回退。JS 内存自动管理,但"自动"不等于"不会漏"。是"固定间隔最多执行一次"。手写 Promise 是"懂异步"的试金石。是"停下后才执行最后一次",

qq_38468358的博客 323

【JVM】对象内存布局

HotSpot JVM 中,Java 对象内存布局由对象头(12字节,含Mark Word与压缩Klass Pointer)、实例数据及对齐填充构成,总大小为8字节倍数。对象头支持锁状态动态复用,指针压缩使引用仅4字节,但堆超32GB时失效。实例字段按类型优先级重排序以减少间隙,最小对象大小为16字节。通过JOL工具可精准验证布局,理解锁机制、GC、伪共享等底层行为。

2301_79732484的博客 139

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 189
上一篇: 将阿拉伯数字转换成中文金额大写
下一篇: Ubuntu升级 12.04无法启动( ORA-00845: MEMORY_TARGET)
sundoctor
博客等级 码龄23年 2粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值