当前位置: 首页 > news >正文

JMeter groovy 编译成.jar 文件

groovy 编译

一、windows 下手动安装Groovy

下载 Groovy 二进制包

前往官网:https://groovy.apache.org/download.html
下载 Binary release(
https://groovy.jfrog.io/ui/native/dist-release-local/groovy-zips/apache-groovy-sdk-4.0.27.zip )

解压到本地目录

例如解压到:D:\Soft\Dev\groovy-4.0.27

配置环境变量

添加 GROOVY_HOME:D:\Soft\Dev\groovy-4.0.27

将 Groovy 的 bin 目录加入 PATH:%GROOVY_HOME%\bin

验证安装

打开 CMD 或 PowerShell:

groovy -version

二、使用 Groovy 编译 Java 源码

准备环境

Java JDK 已安装(建议 JDK 8 或以上)
Groovy 已手动安装并加入系统 PATH
Protobuf 依赖已准备好

目录结构示例

D:\groovy-projects\
├── src\
│   └── MessageBuilder.groovy
├── lib\
│   ├── protobuf-java-3.21.12.jar
│   └── .. 其他依赖包
└── build\

编译 Groovy 文件为 .class


cd D:\groovy-projects
groovyc -cp "lib/*" src/MessageBuilder.groovy -d build/

-cp “lib/*”:指定依赖库路径
-d build/:指定输出目录

编译完成后,build/ 目录下会生成 .class 文件。

创建 MANIFEST.MF 文件(可选)

在 build/ 目录下创建一个 MANIFEST.MF 文件(如果需要指定主类):

Manifest-Version: 1.0
Main-Class: MessageBuilder

打包成 .jar 文件

jar cfm MessageBuilder.jar build/MANIFEST.MF -C build/ .

或不指定主类

jar cf MessageBuilder.jar -C build/ .

在这里插入图片描述

验证JAR文件

java -cp "MessageBuilder.jar;lib/*" MessageBuilder

如果你的类中有 main 方法,可以这样运行:

groovy -cp "MessageBuilder.jar;lib/*" MessageBuilder

示例完整命令汇总

cd D:\groovy-projects:: 编译
groovyc -cp "lib/*" src/MessageBuilder.groovy -d build/:: 创建 MANIFEST(可选)
echo Manifest-Version: 1.0 > build/MANIFEST.MF
echo Main-Class: MessageBuilder >> build/MANIFEST.MF:: 打包
jar cfm MessageBuilder.jar build/MANIFEST.MF -C build/ .:: 验证
groovy -cp "MessageBuilder.jar;lib/*" MessageBuilder

注意事项

如果 MessageBuilder.groovy 没有 main 方法,不需要指定 Main-Class
确保 MessageProBuf 已正确打包为 JAR 并放入 lib/ 目录
如果你使用的是 Windows 系统,类路径中的分隔符是 ;Linux/macOS 是 :

http://www.dtcms.com/a/291807.html

相关文章:

  • RabbitMQ--批量处理
  • 【Zephyr开发实践系列】09_LittleFs文件系统操作
  • 在easyui中如何自定义表格里面的内容
  • 目标检测系列(六)labelstudio实现自动化标注
  • vue2 webpack 部署二级目录、根目录nginx配置及打包配置调整
  • 容器化部署 Tomcat + MySQL 实战指南:从入门到进阶
  • MongoDB数据库详解-针对大型分布式项目采用的原因以及基础原理和发展-卓伊凡|贝贝|莉莉
  • 架构演进核心路线:从离线仓库到实时湖仓一体
  • LLM评测框架Ragas Agents or Tool Use Cases指标(解决了Ollama推理框架不支持的问题)
  • 微软徽标认证是什么?如何快速获取驱动签名?
  • Linux操作系统从入门到实战(十二)Linux操作系统第一个程序(进度条)
  • 【用户管理】usermod设置主组和附加组(三)
  • es搜索实现既能模糊查询又能分词查询
  • [Dify] -进阶10- Dify 的用户输入结构:变量、参数、文件上传全解析
  • stm32 智能小车
  • 【多线程篇22】:ConcurrentHashMap的并发安全原理剖析
  • 低成本、高泛化能力的无人机自主飞行!VLM-Nav:基于单目视觉与视觉语言模型的无地图无人机导航
  • C++类和对象(3)
  • 从零搭建 OpenCV 项目(新手向)--第一天初识OpenCV与图像基础
  • MCP:Cline+DeepSeek在VSCode上配置
  • TDengine 计算百分位函数使用手册
  • .net web 中如何优雅地使用 redis?
  • MFC类Qt的自动布局框架
  • 景区负氧离子监测设备:守护清新,赋能旅游
  • 【kubernetes】-2 K8S的资源管理
  • 学习笔记-关于中华心法问答系统的环境配置和源代码理解
  • 基于Vue+ElementUI的借还款利息计算器
  • Java 动态导出 Word 登记表:多人员、分页、动态表格的最佳实践
  • SpringBoot集成PDFBox实现PDF导出(表格导出、分页页码、电子签章与数字签名)
  • RISC-V基金会Datacenter SIG月会圆满举办,探讨RAS、PMU性能分析实践和经验