使用cmd脚本运行java窗口程序(Swing界面),同时又要让CMD窗口隐藏且同时获得管理员权限...

如果我们使用java开发Swing界面程序,运行的方法有两种:

1、直接打jar包时,指定Main的类,由Main类初始化界面。这样的好处是,可以直接通过jar包运行窗口程序(前提是机器上要装jre)。

2、通过操作系统的脚本语言,如Windows中就是cmd,后缀一般是bat(也有cmd的,bat与cmd是两个不同的命令体系,这一点大家要注意),在脚本里面调用java来启动jar包中指定的启动类即可。

 

以上两种方法各有优缺点:

1、直接jar包启动

  • 优点:操作方便
  • 缺点:需要装jre、不能在启动时指定参数、不能指定运行jar包时的内存等大小

2、使用脚本命令运行

  • 优点:弥补以上缺点(不需要本地装jre,可以将jre打包到程序中,使用命令行指定java所在路径即可)
  • 缺点:每次运行总是会附带弹出一个cmd窗口。本来这也不算什么缺点,但这个窗口因为显得很专业的样子,会让一些用户情不自禁地想关闭它!然后一关闭它时,连带被它启动的jar程序也会被关闭,也就是容易引起误操作。本来这样的误操作也没什么,但如果你的程序需要在关闭时要做点什么(比如我写的一个程序就是要在关闭程序时要关闭相关的数据库、清除临时数据等操作),这时候就麻烦了!

本文的重点就是为了解决第2点中cmd窗口的问题(不要问我为什么不使用第一种方式,因为我不想说用户是傻X,也是懒惰的,让他们装jre?开玩笑!),因为在试用时,经常会有人看到这个黑窗口时,就情不自禁地关掉,结果他们发现直接关闭黑窗口要比关闭jar窗口要快许多(因为cmd窗口是直接中断JVM,当然快,jar窗口关闭时要处理许多事情的,当然慢)!本来直接关闭黑窗口的方式也不影响,但他们还经常要把整个程序的文件夹删除重装(因为整个程序是绿色免安装的),这时候就会发生部分文件无法删除(因为数据库没有关闭嘛!),然后他们就会抱怨!所以这个问题,我得解决:

 

解决方案其实有两个:

1、将cmd窗口隐藏,强制用户关闭窗口进行关闭。这种方式,我查了许久、试验了很多次,在bat文件的开头加上这几行就行了:

if "%1" == "h" goto BEGIN
mshta vbscript:createobject("wscript.shell").run("""%~dp0%%~nx0"" h",0)(window.close)&&exit

 本以为这样OK了,结果:在运行时360报这个文件可能是病毒!唉~~

2、在程序文件夹中增加一个uninstall.bat文件。虽然这个程序是解压即可用,但为了防止用户乱关闭造成的问题,增加这个文件,让用户删除文件夹时使用这个文件进行卸载。而这个文件里就干一件事,调用关闭时要处理的事情即可,然后删除文件夹内所有的文件,最后提示用户“没有删除的文件请自己删除!”

 

另外,自从Windows升级到Vista之后,对权限的管理更加严格,如果当前用户不是电脑的管理员权限,则许多操作都需要获取管理员权限才能做,比如我们java程序中要调用启动Mysql数据库,这时候如果启动java程序的用户不是管理员权限,那java程序启动Mysql也一定会失败的!那该怎么处理呢?在cmd的命令中执行下面的语句即可:

%1 %2
ver|find "5.">nul&&goto :st
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :st","","runas",1)(window.close)&goto :eof
 
:st
copy "%~0" "%windir%\system32\"

你自己要执行的语句

 现在如果大家想实现我标题中所要实现的要求,直接把两段代码放在一起是不行的!会出现死循环!作为程序员,要知道死循环的原因在哪儿!因为这两个语句都有if判断,且都会重新执行整个语句,所以为了让每次执行都会执行不同的条件,需要给执行的语句加上相应的参数即可,根据参数不同进行区分,合并如下:

 

%1 %2
ver|find "5.">nul&&goto :st
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :st","","runas",1)(window.close)&&exit
 
:st
copy "%~0" "%windir%\system32\"

if "%3" == "h" goto :BEGIN
mshta vbscript:createobject("wscript.shell").run("""%~dp0%%~nx0"" goto :st h",0)(window.close)&&exit

:BEGIN

以下是你要执行的代码

 

 

如果大家有更好的方式,请不吝赐教啊,在此谢过!

CiteSpace安装与配置全攻略:从Java环境到性能调优 文献计量与可视化分析是科研工作者进行领域综述、研究前沿探测和知识图谱绘制的重要方法。其核心原理在于通过算法对海量文献数据进行计量、关联与聚类,从而揭示学科知识结构与发展脉络。这项技术的价值在于能将抽象的文献关系转化为直观的可视化网络,极大提升研究效率与洞察力。在实际应用中,它广泛服务于科研选题、趋势预测和学术评价等场景。本文聚焦于该领域的经典工具CiteSpace,针对其安装过程中常见的“无法点击节点”等GUI问题及环境配置难点,提供了一套从Java环境部署、官方程序获取到内存参数调优的完整解决方案,旨在帮 阅读详情

相关推荐

BurpSuite 2024.10光标错位全平台修复指南与JVM参数优化

Java图形用户界面(GUI)应用在跨平台部署时,常因底层图形库与操作系统显示服务的坐标映射机制不一致,导致界面渲染问题,如组件错位、光标漂移。其核心原理涉及Java Swing/AWT组件与系统窗口管理器在DPI缩放、事件传递及渲染管道上的兼容性差异。解决此类问题对保障开发与测试工具的稳定性和操作精度具有重要技术价值,尤其在Web安全测试、渗透测试等需要高精度交互的场景中。通过调整JVM启动参数,如强制UI缩放因子(-Dsun.java2d.uiScale)、指定渲染平台(-Dglass.platform

闲谈 823

windows隐藏CMD窗口,使jar程序在后台执行

start 表示批处理中调用外部程序的命令,否则等外部程序完成后才继续执行剩下的指令。(3)cmd后台能隐藏运行后,想要关闭,可以打开任务管理器去关闭对应的进程。windows 开机自动运行bat,bat文件放到“启动”目录即可。:label 表示行首为:表示该行是标签行,标签行不执行操作。goto label 表示跳转到指定的标签那一行。if “%1”==“h” 表示第一个参数是h。.bat是windows下的批处理文件。(1)鼠标左键双击,运行xxx.bat。(2)拷贝bat文件到该启动目录下。....

system_All的博客 6260

GeoGebra安装避坑指南:OpenGL、Java与教育网环境适配

GeoGebra作为动态数学教学的核心工具,其本质是依托OpenGL图形渲染、Java运行时(旧版)或WebAssembly(新版)实现数学概念的实时具身化。理解其底层依赖关系,是解决安装失败、启动黑屏、3D模块缺失等高频问题的关键。在教育场景中,90%的异常并非操作失误,而是显卡驱动未启用OpenGL 3.3+、Java环境错配(如JDK未注册PATH)、或高校/企业SSL代理导致证书校验失败。掌握跨平台环境体检(Windows/macOS/Ubuntu)、离线部署、网页应急方案及多版本共存策略,可显著提

weixin_30819085的博客 428

Windows 下启动 jar 后隐藏cmd 窗口

两种方式去掉 cmd ,一种 java 方式,一种 javaw 方式 关闭java进程脚本 参考资料 bat/cmd将命令执行的结果赋值给变量 Windows启动和停止jar包命令 windows 批处理文件bat中当前目录。 java 与 javaw 区别

米斯特程序猿 2808

Abaqus 2026安装避坑指南:Java 8u202、TomEE 7.1.0与VC++2010 SP1兼容配置

ABAQUS作为主流工程仿真软件,其安装过程高度依赖特定版本的底层运行环境。理解Java运行时环境(JRE)与中间件容器的技术耦合关系,是解决许可服务异常、CAE界面闪退等典型故障的关键。Abaqus 2026强制绑定Java 8u202和TomEE 7.1.0,源于其内核对旧版Servlet 3.1规范、sun.misc.Unsafe类及JAXB模块的硬编码依赖;而VC++ 2010 SP1运行库缺失则直接导致Fortran求解器与Python引擎调用失败。这类历史兼容性问题在Windows 10/11新

dezhen7015的博客 428

Oracle JDK在Windows 11安装的三大暗坑与实战解决方案

Java开发环境配置是软件工程的基础能力,而JDK作为Java运行与编译的核心工具链,其安装稳定性直接影响项目构建、IDE集成与容器化部署。Oracle JDK因商用授权策略调整,已与Windows 11系统级安全机制(如Smart App Control、受控文件夹访问、PATH解析升级)产生深度冲突。理解JDK安装本质——不仅是复制bin目录,更是账号体系对接、权限模型适配与环境变量语义校验的过程——才能规避注册失败、javac不可用、PATH静默失效等高频故障。本文聚焦Windows 11平台下Ora

weixin_30697239的博客 526

java执行windows 的cmd 命令说明

//获取运行时 Runtime rt = Runtime.getRuntime(); //获取进程 Process p = rt.exec(String[] cmdarray);     或者 &

RyuSekii 375

Arduino IDE跨平台安装原理与底层故障排查指南

Arduino IDE作为基于Java的跨平台嵌入式开发工具,其安装过程本质是操作系统环境适配问题:在Windows上涉及MSI安装器、驱动签名与JRE环境隔离;在macOS中需突破Gatekeeper签名校验、Apple Silicon芯片的ARM64 Java兼容性及Metal图形后端配置;在Linux下则依赖udev规则、串口权限与命令行工具链集成。理解USB设备识别、串口通信抽象层(libserialport)、Java本地接口(JNI)调用机制,是解决‘端口为空’‘卡在95%’‘已损坏’等高频问题

weixin_34248705的博客 287

SpringBoot打jar包,并后台运行

文章目录SpringBoot打jar包,并后台运行SpringBoot打jar包jar包部署运行 SpringBoot打jar包,并后台运行 SpringBoot打jar包 SpringBoot通过maven管理,打jar包方式非常简单。 jar包部署运行 jar包运行的方式: 最简单的方式。在jar包所在目录位置,打开cmd窗口,输入 java -jar xxx.jar 即可运行项目,例: 但是命令行一旦关闭,项目会停止运行。为保证项目不停止运行,可以写一个bat批处理脚本。使该项目在后台运行 @

chenHARDEN的博客 2638

Lithe-IDEA:面向Spring Boot的开源轻量Java IDE重构实践

IDE(集成开发环境)是Java开发者的核心生产力工具,其本质是代码解析、语义分析与人机交互的工程综合体。现代Java开发高度依赖Spring Boot等约定式框架,对配置感知、Bean推演和生态协同提出实时化、原生化要求。传统IDE常因闭源模块耦合、插件机制脆弱、启动与内存开销过大,难以满足企业级标准化与开发者自主可控需求。Lithe-IDEA以IntelliJ Platform为基座,通过JavaFX重构UI、能力契约式插件管理、Spring Boot语义内建等关键技术,实现冷启动6.3秒、常驻内存42

weixin_33946605的博客 356

Java写的免依赖远程桌面工具,带服务端和客户端,支持远程开关机

纯Java实现的Socket远程桌面控制方案,不依赖任何第三方JAR包,打包后体积小、启动快,Windows下开箱即用。服务端提供图形化主控界面,实时显示在线客户端列表,点击即可打开目标机器的屏幕预览窗口,支持鼠标移动、点击、键盘输入等基础远程操作。客户端运行后自动注册到服务端,支持Wake-on-LAN远程开机(需主板和网卡支持并开启相关设置),以及远程关机、重启等系统管理功能。所有配置项集中写在config.ini中,便于快速调整IP、端口、超时时间等参数。界面基于Swing开发,兼容主流Windows

c6d7e8f9g的博客 290

Java Swing程序打包exe实战:exe4j封装原理与工程落地

Java桌面应用以.jar为标准分发形式,但面向Windows终端用户时,需转化为双击即用的.exe文件——这并非简单格式转换,而是运行时环境封装与交付体验重构。核心在于解决JRE依赖、UI线程安全、原生窗口集成及企业级部署兼容性等关键问题。exe4j作为成熟方案,通过JNI桥接实现JVM动态加载、Swing EDT保障、图标/UAC/版本信息嵌入等能力,显著优于Launch4j等替代工具。尤其在Swing/AWT类GUI项目中,其对Java 5–21全版本兼容、任务管理器进程名控制、无黑窗启动等特性,构成

weixin_34387468的博客 283

达梦DM8整合Seata AT模式实战:手把手教你搞定分布式事务(含源码修改避坑)

本文详细介绍了达梦DM8数据库与Seata AT模式的深度整合实战,包括环境准备、架构设计、源码适配及分布式事务落地。通过独创性源码改造,解决了Seata官方对达梦数据库AT模式支持的限制,为国产数据库在微服务架构中的应用提供了可靠的事务保障。

weixin_30764771的博客 333

[个人总结]-java常用方法

user.dir是一个系统属性,表示用户当前的工作目录,大多数情况下,用户的当前工作目录就是java项目的根目录(src文件的同级路径)cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭。cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭。cmd /k dir 是执行完dir命令后不关闭命令窗口。cmd /c dir 是执行完dir命令后关闭命令窗口。// 获取命令输出结果。// 等待命令执行完成。// 调用CMD命令。

weixin_45210565的博客 1335

MuJoCo 机械臂关节空间阻抗控制Impedance实现(附代码)

阻抗控制通过调整关节的刚度和阻尼,让机器人在接触时产生顺应性,减少冲击力,其核心目标是在接触外部载荷时能够自适应调整输出力矩,实现力与位置的协同控制。阻抗控制可以很快的到达设定位置,在此基础上,使用mujoco交互中的施加外力操作,可以看到当外力松开后,机械臂也可以很快的回弹回设定位置。其中self.Kp和self.Kd为固定刚度和阻尼系数,通过修改刚度和阻尼参数,可以变得更柔顺来应对各种场景。注释掉该行后,直接simulate仿真可以看到机械臂控制位置震荡等情况,接下来引入关节空间阻抗控制的代码。

darcsdn 1276

LVGL在RTOS下的线程安全实践:从卡死到流畅的界面切换

本文探讨LVGL在RTOS环境下的线程安全实践,重点分析FreeRTOS多任务同步机制,包括互斥锁、任务通知和消息队列方案。通过实际案例展示如何避免界面卡顿和系统死锁,实现从卡死到流畅的界面切换,为嵌入式GUI开发提供可靠的适配解决方案。

uran的专栏 1113

Digital电路仿真软件安装教程:Java环境配置与常见报错解决

Java运行时环境是许多跨平台工具的基础依赖,其版本管理与环境变量配置直接影响程序启动与运行稳定性。在数字电路仿真领域,基于Java开发的轻量级工具常因JDK版本不匹配、PATH设置错误或路径含中文导致启动失败。正确配置Java 11等LTS版本并理解JAVA_HOME与Path的区别,能有效规避兼容性问题,确保仿真软件正常加载工程与执行逻辑验证。本文围绕Digital电路仿真软件的安装实践,梳理从JDK安装教程到环境变量配置的完整链路,并针对常见启动报错给出排查方案。

weixin_34013044的博客 328

PLC作为Modbus TCP客户端

PLC作为Modbus TCP客户端,Modbus Slave作为服务器

soledad_chao的博客 4379

Windows系统找不到javaw.exe的完整解决方案:从环境变量配置到Java安装修复

Java运行环境(JRE)和Java开发工具包(JDK)是执行Java应用程序的基础,其核心原理是通过Java虚拟机(JVM)将字节码转换为机器指令。在Windows操作系统中,系统依赖PATH环境变量来定位可执行文件,这是操作系统管理应用路径的通用机制。当环境变量配置不当或Java安装不完整时,系统便无法找到关键的javaw.exe启动器,导致图形界面Java程序启动失败,直接影响开发调试和软件部署流程。本文聚焦于这一常见报错,深入解析其背后的环境变量配置逻辑与Java运行时安装要点,提供从快速诊断、PA

weixin_34221112的博客 472

避坑指南:Abaqus网格划分中90%用户会遇到的5个质量陷阱(附解决方案)

本文深入剖析Abaqus网格划分中90%用户会遇到的5个典型质量陷阱,包括单元扭曲、扫掠网格失败、尺寸梯度控制等,并提供工程级解决方案。通过Python脚本和虚拟拓扑等技巧,帮助用户提升网格质量,确保有限元分析结果的可靠性,适用于CAE工程师和仿真分析师。

weixin_29243279的博客 101

从Multibit到Debanking:芯片设计中的时序优化完整流程解析(含真实案例)

本文深入解析芯片设计中Multibit技术与Debanking的时序优化完整流程,结合7nm移动SoC真实案例,详细探讨Multibit的核心优势、实施条件及潜在风险,并提供Debanking的触发时机与操作策略。通过平衡Multibit与Debanking,工程师可有效优化PPA(Power-Performance-Area),提升芯片设计效率。

weixin_30316097的博客 462

Burp Suite汉化版安装与安全配置全解析:从Java环境到风险规避

Java环境配置是众多开发与安全测试工具的基石,其核心原理在于为应用程序提供统一的运行时环境。通过正确设置JAVA_HOME与Path系统变量,系统能够精准定位并调用JDK中的编译与执行工具,这对于保障软件兼容性与稳定性至关重要。在Web安全测试领域,Burp Suite作为行业标杆工具,其强大的抓包、改包及漏洞扫描功能,为安全工程师提供了高效的工程实践平台。然而,对于初学者,全英文界面与复杂的激活流程构成了门槛。因此,围绕Burp Suite汉化版与破解激活的**安全警示**与**环境配置**成为高频关注

cuixie2370的博客 499

挂载(Mount)是什么意思

挂载 = 把一个存储设备或文件系统“接入”到现有的目录树,使其内容能够被访问。

天赐好车的博客 289

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

万字长文:YOLOv5+RK3588 NPU多线程加速全攻略——从理论到部署的终极优化

RK3588 NPU多线程加速优化教程摘要 本教程深入讲解了如何利用线程池技术优化RK3588 NPU上的YOLO目标检测模型推理性能。RK3588内置3个NPU核心,理论算力达6TOPS,为多线程优化提供了硬件基础。教程详细解析了线程池的核心组件(任务队列、工作线程、同步机制)和实现架构,包括类设计、初始化流程、工作线程逻辑(任务获取、NPU推理、结果存储三个阶段)以及任务提交/获取机制。通过预分配模型实例、线程绑定、流量控制等优化手段,实现了从单线程28FPS到多线程120FPS的显著性能提升,为边缘A

LXY_LOVE36的博客 1101

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Launch4j实战:Java应用打包成Windows双击EXE的完整指南

在Java桌面应用分发场景中,开发者常常面临一个现实问题:交付的JAR包在普通用户电脑上无法直接运行,原因往往不在于程序本身,而在于目标机器缺少Java运行时环境或配置不当。要解决这一“最后一公里”问题,就需要为应用构建一个原生启动外壳。Launch4j作为一款开源免费的打包工具,能够将JAR包包装为Windows下的EXE启动器,自动完成JRE搜索、JVM参数传递、图标版本信息注入等关键工作。理解其配置逻辑,掌握XML构建方式,并结合jlink裁剪运行时与Inno Setup制作安装包,可以显著提升工具类

weixin_33154775的博客 244

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: jms与ActiveMQ实践与应用
下一篇: Java防反编译技术实现探讨
hellohank
博客等级 码龄19年 0粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值