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:

bash 复制代码
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

bash 复制代码
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 文件

bash 复制代码
jar cfm MessageBuilder.jar build/MANIFEST.MF -C build/ .

或不指定主类

bash 复制代码
jar cf MessageBuilder.jar -C build/ .

验证JAR文件

bash 复制代码
java -cp "MessageBuilder.jar;lib/*" MessageBuilder

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

bash 复制代码
groovy -cp "MessageBuilder.jar;lib/*" MessageBuilder

示例完整命令汇总

bash 复制代码
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 是 :

相关推荐
zww894911110 小时前
匿名树洞系统开发实战:从需求分析到部署指南
java·eclipse
黑马程序员毕设11 小时前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设
木井巳12 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
白山编程大哥12 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
devpotato12 小时前
缓存与数据库更新顺序不一致问题
java·数据库·redis
xcl092512 小时前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·spring boot·需求分析
Kyrie_kk13 小时前
Java--IO--Path文件访问
java·后端
qinqinzqq13 小时前
Maven POM 格式、Schema 与 XSD:一篇讲透
java·maven
o盟13 小时前
maven本地仓库有 总是去私仓中下载
java·maven·intellij-idea
devpotato13 小时前
Java 批量并发请求:从“能并发“到“结果按完成顺序可用“的三种写法与选型
java