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 是 :

相关推荐
Boilermaker199217 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
Cherry的跨界思维17 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
alonewolf_9918 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
一嘴一个橘子18 小时前
spring-aop 的 基础使用(啥是增强类、切点、切面)- 2
java
sheji341618 小时前
【开题答辩全过程】以 中医药文化科普系统为例,包含答辩的问题和答案
java
恋爱绝缘体118 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wszy180919 小时前
新文章标签:让用户一眼发现最新内容
java·python·harmonyos
wszy180919 小时前
顶部标题栏的设计与实现:让用户知道自己在哪
java·python·react native·harmonyos
程序员小假20 小时前
我们来说一下无锁队列 Disruptor 的原理
java·后端
资生算法程序员_畅想家_剑魔20 小时前
Kotlin常见技术分享-02-相对于Java 的核心优势-协程
java·开发语言·kotlin