windows环境下运行java的脚本
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
windows环境下运行java的脚本 前几天研发时遇到eclipse运行不稳定的情况,明明实现了的功能有的时候能运行到,有时运行不到,非常让人头疼。于是想在本地搭一套运行环境,方便比较。 说明:以下情况主要针对java运行 首先考虑Application。maven编译Spring Boot默认打的包是fatjar,所以比较好处理。此处重点考虑传统Application。也可以考虑打成fatjar。用Eclipse->Export 安装fatjar插件\引入maven-shade-plugin插件或assembly插件,均不如意。要么方法费劲还容易错,要么影响到正常使用方式。考虑再三,决定用 在Windows环境下运行Java应用,尤其是传统的Application类型,可能会遇到各种问题,比如Eclipse运行不稳定。在这种情况下,构建一个本地运行环境能提供更好的控制和可比性。本文将介绍如何使用shell脚本来创建一个简单的Java应用运行环境。 我们要知道Maven在编译Spring Boot项目时,默认生成的是fatjar,这使得直接运行变得简单。但对于传统应用,我们可能需要处理多个依赖。一种常见的方式是使用Eclipse的Export功能,或者通过maven-shade-plugin或maven-assembly-plugin来打包,但这可能会带来额外的复杂性或影响正常的构建流程。 下面是一个示例的shell脚本(适用于Linux或Git Bash环境): ```bash #!/bin/bash cur_path="运行目录" # 当前目录 echo "当前目录:" $cur_path projectPath="工程目录" # 工程目录 subProject="目标工程名" # 目标工程名称 echo "项目目录:" $projectPath echo "项目目录:" ${projectPath} cd $projectPath mvn clean # 清理构建 echo "拷贝jar包" mvn dependency:copy-dependencies -DoutputDirectory=$projectPath # 拷贝依赖到工程目录 mvn clean echo "拷贝jar包" mvn dependency:copy-dependencies -DoutputDirectory=$cur_path/lib -pl $subProject # 拷贝依赖到lib目录 echo "编译工程" mvn compile -pl $subProject -DskipTests # 编译指定项目并跳过测试 cp -fr $subProject/target/classes/ $cur_path # 拷贝编译结果到当前目录 # 设置类路径 cd $cur_path x=$(ls lib/*.jar) CL=".;$cur_path/classes" for y in $x; do CL="$CL;$y" done echo "类路径:" $CL # 生成批处理文件启动脚本 echo "java -cp $CL mainClass $*" > $cur_path/start.bat echo "succ" # 运行批处理文件 ./start.bat ``` 这个脚本会执行以下步骤: 1. 更改到工程目录。 2. 清理项目并拷贝所有依赖到工程目录和当前目录的lib文件夹。 3. 编译指定的子项目,跳过测试。 4. 拷贝编译后的class文件到当前目录。 5. 创建一个批处理文件(start.bat),设置类路径并运行主类。 对于WAR类型的项目,我们可以使用`tomcat7-maven-plugin`来运行。只需在pom.xml中配置该插件,并在命令行中执行`mvn tomcat7:run`即可。 如果需要部署到Tomcat服务器,可以通过脚本将WAR包拷贝到Tomcat的webapps目录,然后启动Tomcat服务。例如: ```bash run_home="运行目录" projectPath="项目根目录" subProject="web项目名" sh ./shutdown.sh;sleep 5;rm -rf $run_home/webapps/* # 关闭Tomcat,清理webapps目录 echo "项目目录:" $run_home/webapps/* echo "项目目录:" ${run_home}/webapps/* cd $projectPath mvn clean package -pl $subProject -am -DskipTests # 清理并打包 cp -f $subProject/target/*.war $run_home/webapps/ # 拷贝WAR包 sh $run_home/bin/startup.sh # 启动Tomcat echo "publish complete." ``` 这样的脚本化处理方式,使得管理和部署Java应用变得更加灵活,减少了不必要的复杂性。如果你对Java编程或脚本编写感兴趣,可以继续探索相关知识,提升你的技能水平。同时,记得关注作者获取更多Java学习资料,祝你身体健康,事业有成!
- 粉丝: 9
- 资源: 923
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 深圳建设工程公司考勤休假管理规定.docx
- 深圳建设工程公司员工工作规范和行为准则.docx
- 深圳建设工程公司员工奖惩管理规定.docx
- 深圳建设工程公司资料管理制度.docx
- 空中俯视物体检测9-YOLOv5数据集合集.rar
- CA法模拟动态再结晶,晶粒正常长大,利用元胞自动机生成拓扑晶粒模型,参数可调 元胞胞自动机模拟动态再结晶母相晶粒生成 本程序基于曲率驱动机制以及热激活机制,matlab编写,本程序模拟奥氏体晶粒正
- 无人船 无人艇路径跟踪控制 fossen模型matlab simulink效果 基于观测器的LOS制导结合反步法控制 ELOS+backstepping
- Labview Ethernetip TCP网口通讯欧姆龙PLC OmronNX1P2NJ501NJ301PLC标签通讯 CIP通讯比Fins通讯更完美 1.自定义变量读写 2.支持 Bool单点或
- Python基于深度学习的垃圾分类目标检测系统
- 空中救援任务检测2-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 该模型采用离散化的龙贝格观测器进行无传感器控制 其利用 PMSM 数学模型构造观测器模型,根据输出的偏差反馈信号来进行PLL得到速度和角度 当观测的电流实现与实际电流跟随时,可以从观测的反电势计算得
- Python毕业设计-基于深度学习的垃圾分类目标检测系统源码
- Python毕设基于深度学习的垃圾分类目标检测系统源码
- 《STM32单片机+2x180-SG90+2x360-SG90+OLED屏幕》源代码
- 本科毕设-基于三维卷积神经网络的卒中患者疲劳检测详细文档+全部资料+优秀项目+源码.zip
- 本科毕设-基于卷积神经网络的红外图像非均匀性校正详细文档+全部资料+优秀项目+源码.zip